Google Apps Script 함수를 특정 시트 이외의 기능으로 실행하면 알림
소개
Google Apps Script에서 스프레드시트 프로그램을 작성하는 경우 이런 일이 발생하지 않습니까?
「에러가 나왔다고 생각하면, 액티브하게 하고 있는 시트가 다르다・・・」
이것은 있다고 생각하기 때문에, 이번에는 그것을 방지하는 프로그램을 만든다.
원래 "활성 시트"는?
이 경우는 「견적서」라고 하는 시트가 액티브라고 하게 된다.
지금 열려 있는 스프레드시트 내에서 어떤 시트를 열고 있습니까?
이것을 알면, 이용자에게 매우 상냥한 프로그램을 쓸 수 있을 것 같네요.
예를 들어, 이쪽을 보고 싶다.
Google Apps Script 견적서에서 데이터를 전기하고 지정된 폴더에 인보이스 만들기(스프레드시트)
상기의 기사에서 소개하고 있는 코드의 경우, 「견적서」라고 하는 시트가 액티브하지 않으면, 에러가 나온다. 왜냐하면 얻을 가치가 없기 때문입니다!
「견적서」라고 하는 시트에는 G18의 셀에 값이 존재해도, 그 이외의 시트에서는 G18의 셀에 값이 존재하지 않을지도 모른다. 결과적으로 활성 시트가 "견적서"이외의 시트이면 값이 없으므로 오류가 발생합니다.
특정 시트 이외의 함수를 실행하면 경고를 발행합니다.
// Spreadsheetが開かれた時に自動的に実行されます.
function onOpen() {
// 現在開いている、スプレッドシートを取得します.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// メニュー項目を定義します.
var entries = [
{name : "請求書を生成" , functionName : "menuItem1"},
{name : "PDF化する" , functionName : "menuItem2"},
];
// 「Custom」という名前でメニューに追加します.
spreadsheet.addMenu("Custom", entries);
}
// menuItem1をクリックした時の処理
function menuItem1() {
//現在のスプレッドシートを取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
//見積書以外で実行したらアラート
var nowSheet = sheet.getSheetName();
if (nowSheet === '見積書') {
Logger.log('見積書がアクティブです');
} else {
menuItem1Alert();
}
}
function menuItem1Alert() {
var ui = SpreadsheetApp.getUi();
var title = '見積書で実行してね!';
var text = 'じゃないと失敗するの・・・'
ui.alert(title, text, ui.ButtonSet.OK_CANCEL);
}
Reference
이 문제에 관하여(Google Apps Script 함수를 특정 시트 이외의 기능으로 실행하면 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kokogento/items/696ef8bbd2b9b78dd95e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 경우는 「견적서」라고 하는 시트가 액티브라고 하게 된다.
지금 열려 있는 스프레드시트 내에서 어떤 시트를 열고 있습니까?
이것을 알면, 이용자에게 매우 상냥한 프로그램을 쓸 수 있을 것 같네요.
예를 들어, 이쪽을 보고 싶다.
Google Apps Script 견적서에서 데이터를 전기하고 지정된 폴더에 인보이스 만들기(스프레드시트)
상기의 기사에서 소개하고 있는 코드의 경우, 「견적서」라고 하는 시트가 액티브하지 않으면, 에러가 나온다. 왜냐하면 얻을 가치가 없기 때문입니다!
「견적서」라고 하는 시트에는 G18의 셀에 값이 존재해도, 그 이외의 시트에서는 G18의 셀에 값이 존재하지 않을지도 모른다. 결과적으로 활성 시트가 "견적서"이외의 시트이면 값이 없으므로 오류가 발생합니다.
특정 시트 이외의 함수를 실행하면 경고를 발행합니다.
// Spreadsheetが開かれた時に自動的に実行されます.
function onOpen() {
// 現在開いている、スプレッドシートを取得します.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// メニュー項目を定義します.
var entries = [
{name : "請求書を生成" , functionName : "menuItem1"},
{name : "PDF化する" , functionName : "menuItem2"},
];
// 「Custom」という名前でメニューに追加します.
spreadsheet.addMenu("Custom", entries);
}
// menuItem1をクリックした時の処理
function menuItem1() {
//現在のスプレッドシートを取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
//見積書以外で実行したらアラート
var nowSheet = sheet.getSheetName();
if (nowSheet === '見積書') {
Logger.log('見積書がアクティブです');
} else {
menuItem1Alert();
}
}
function menuItem1Alert() {
var ui = SpreadsheetApp.getUi();
var title = '見積書で実行してね!';
var text = 'じゃないと失敗するの・・・'
ui.alert(title, text, ui.ButtonSet.OK_CANCEL);
}
Reference
이 문제에 관하여(Google Apps Script 함수를 특정 시트 이외의 기능으로 실행하면 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kokogento/items/696ef8bbd2b9b78dd95e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// Spreadsheetが開かれた時に自動的に実行されます.
function onOpen() {
// 現在開いている、スプレッドシートを取得します.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// メニュー項目を定義します.
var entries = [
{name : "請求書を生成" , functionName : "menuItem1"},
{name : "PDF化する" , functionName : "menuItem2"},
];
// 「Custom」という名前でメニューに追加します.
spreadsheet.addMenu("Custom", entries);
}
// menuItem1をクリックした時の処理
function menuItem1() {
//現在のスプレッドシートを取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
//見積書以外で実行したらアラート
var nowSheet = sheet.getSheetName();
if (nowSheet === '見積書') {
Logger.log('見積書がアクティブです');
} else {
menuItem1Alert();
}
}
function menuItem1Alert() {
var ui = SpreadsheetApp.getUi();
var title = '見積書で実行してね!';
var text = 'じゃないと失敗するの・・・'
ui.alert(title, text, ui.ButtonSet.OK_CANCEL);
}
Reference
이 문제에 관하여(Google Apps Script 함수를 특정 시트 이외의 기능으로 실행하면 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kokogento/items/696ef8bbd2b9b78dd95e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)