あるスプレッドシートで作った GAS プログラムを、別のスプレッドシートから実行する方法をご紹介します。
MainProjectのスクリプトを作成
新しいファイルの作成方法
「ファイル」「新規作成」 を選択します。
これにより、新しいファイルが作成されます。次に、作成したファイルを使用して、作業を進めます。
これで、必要な操作をこの新しいファイルで行う準備が整いました。
サンプルコード
function 行背景色交互変更() {
var ui = SpreadsheetApp.getUi(); // UI を取得
var response = ui.alert('選択範囲の背景色を交互に、変更しますか?', ui.ButtonSet.YES_NO);
// ユーザーが「YES」を選択した場合
if (response == ui.Button.YES) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getActiveRange(); // 現在選択されている範囲を取得
var startRow = range.getRow(); // 選択範囲の開始行
var numRows = range.getNumRows(); // 選択範囲の行数
var numColumns = range.getNumColumns(); // 選択範囲の列数
// 選択範囲内の各行に交互に背景色を変更
for (var i = 0; i < numRows; i++) {
var currentRow = startRow + i;
// 1行目は白、2行目は灰色 (RGB 240)
if (i % 2 === 0) {
sheet.getRange(currentRow, range.getColumn(), 1, numColumns).setBackground('#FFFFFF'); // 白
} else {
sheet.getRange(currentRow, range.getColumn(), 1, numColumns).setBackground('rgb(240, 240, 240)'); // 灰色 RGB 240
}
}
} else {
// ユーザーが「NO」を選択した場合は何もしない
}
}
このように 記載します。
マクロを起動する方法はいくつかありますが、今回は図形を選択して実行する方法を選びます。
図形を適当に貼付け、テキストの編集で文字をいれます。
シートに図形が作成されました。
図形をマクロボタンで利用できるようにします。
スクリプトの割り当てに先程のコードの 『 行背景色交互変更 』 を入れます。
もちろん、行背景色交互変更の周りの『』は除きます。
MainProject完成 実行テスト
作成したボタンを押す
と

少し怖いかもしれませんが、恐れずに進んでいきましょう。
安全なページに戻ると実行されませんので、少し見にくいかもしれませんが、左下に詳細が表示されていますので、そこで承認します。

交互に背景色が変わりました。
これで、さまざまなコードを作成し、各ファイルでマクロを実行できるようになりました。
不便を感じます
LibraryProjectの作成
イメージとしては、「MainProject」のスクリプトを、「LibraryProject」別ファイルから動かす形になります。
ここから、別のファイルで『行背景色交互変更』を実行する方法について説明します。
スクリプトIDの取得
MainProjectの スクリプトの保存が完了したら左側メニューの「歯車」をクリックしてください。
表示されるものの中から「スクリプトID」という項目を探し、「コピー」ボタンを押して、スクリプトIDをコピーしてください。
スクリプトIDを取得後の利用
左側のメニューから「ライブラリ +」をクリックしてください。
スクリプトIDを入力するボックスに、先ほどコピーしたスクリプトIDをペーストしてください。
続いて「検索」をクリックしてください。
こちらの画面が表示されたら、IDを入力します。
特に決まりはないようですが、英字を使うと良いでしょう。
仮に『 test 』と記入しました。
LibraryProjectで使うコード
function 行背景色交互変更() {
test.行背景色交互変更();
}
コードをエディターに、コピーします。
の後に、MainProjectDateTimeをスクリプトに割当てます。
警告が出るので、先程の説明通り進めてください。
最終テスト
無事別のファイルから起動できるようになりました。
1行毎に背景色が変わっていますね。
完璧にするには