さぁ今度はいきなり長文のコードを入れてみましょう。
テクニックとして覚えるので、コピーで大丈夫です。
/*読み込み時にメニューを追加表示*/
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu(‘短縮ボタン’)
.addItem(‘A’ ,’A’)
.addItem(‘B’ ,’B’)
.addSeparator()
.addSubMenu(
ui.createMenu(‘C’)
.addItem(‘C1′ ,’C1’)
.addItem(‘C2′ ,’C2’)
)
.addToUi();
}
function A(){
Browser.msgBox(‘A’);
}
function B(){
Browser.msgBox(‘B’);
}
function C1(){
Browser.msgBox(‘C1’);
}
function C2(){
Browser.msgBox(‘C2’);
}
保存して、onOpenを実行しましょう。
スプレッドシートのメニューバーに短縮ボタンという項目が追加されたと思います。
何がしたかったのかと言うと、せっかくコードをスプレッドシートに書いたのに、実行するのが大変なので、解決策を先に入れようということです。
このコードの使い方を覚えておくと、この先の説明の実行が素早く出来ます。
もしくは、ツールのマクロからインポートをすればマクロの下に実行が出来るように配置できます。
onOpenというのは起動時実行の命令となるので、スプレッドシートを開くたびに実行してくれます。
逆に言うと実行した後まで起動中となるので、起動に時間がかかります。
ですが、マクロのインポートよりも実行がしやすいので、この方法も覚えておいた方がいいです。
アイテム名の表示と呼び出し関数は別に出来ますが、変えすぎるとどれがどれを呼び出しているのか分かり難くなるので、注意が必要です。
この長文を先に出した理由として、編集をやってみるというのを経験して欲しかったからです。
メッセージを呼び出すにしても、Aを押してAが出るだけじゃあ面白くもないかと思います。
メニューに何て表示させるのか、関数を何て名前にして、どこに書く必要があるのかを、自分で色々編集してみてください。
ちなみに、最初の
/*読み込み時にメニューを追加表示*/
部分は、コメントです。
コードを書いても、他の人が見て分からないのでは、編集が出来なくなります。
自分でも後で見直した時に、どういうつもりで作っているのかなど、出来る限り細かくコメントが入っている方が便利です。
コメントは改行に関わらず
/*で始まって*/で囲われている内側になります。
たとえば、一旦編集としてコードを一部無効化させつつ、すぐに戻せるようにしたい時には、そのコードをコメント化しておくという手法もあります。
ちなみに
/*コメント*/
ではなく
//コメント
でも、コメントは入れられます。
//では1行だけコメント化出来ます。
次の行には影響しませんが、
//より後だけがコメント化されるので、
Browser.msgBox(‘A’); // メッセージAを表示する
という形で1行の途中からコメントに出来ます。
さらに1行だけなので、
Browser.msgBox(‘A’); // メッセージAを表示する
// Browser.msgBox(‘B’); メッセージBを表示する
なら、メッセージBは表示されません。
コメントが長文になる場合には、改行を入れることが多いので/**/を使う必要があるといったところでしょうか。
コメント