GoogleAppsScriptでHelloWorld | GoogleAppsScript入門

この記事ではGoogleAppsScriptを使ってスプレッドシートのメニューから実行してHelloWorldの文字列をシート上に入力するまでを紹介します。

利用するにはGoogleアカウントが必要です。まだ持っていない方は以下記事を参考にアカウント取得後、本記事を読み進めるようにしてください。

スプレッドシートの作成

まず適当なブラウザを利用してGoogleにログインします。

GoogleDriveにアクセスして「新規」ボタンをクリックします。

「Googleスプレッドシート」を選択します。

「無題のスプレッドシート」が表示されます。

スクリプトの作成

まずはMessageBoxとして表示してみます。「ツール」→「スクリプトエディタ」を選択します。

エディタが表示されるので以下の通り記載します。

function myFunction() {
    Browser.msgBox('Hello world');
}

完了後に、▶を押下。ファイルの保存を促されるので適当な名前をつけて保存します。

以下警告が出たら「許可を確認」をクリックします。

アカウントの選択画面が表示されるので自分のアカウントを選択します。

以下画面が表示されるので、「詳細を表示」→「プロジェクト名(安全ではないページ)に移動」をクリックします。

以下画面で許可を選択します。

実行完了後にエディタ画面からスプレッドシートに戻ると以下の通り、メッセージボックスが表示されます。

つづけて以下コードに変更して実行します。

function myFunction() {
    var sheet=SpreadsheetApp.getActiveSheet();
    sheet.getRange(1,1).setValue("Hello World");
}

以下の通り、セル1:1にあたる場所に”Hello World”が入力されます。

ボタンから実行できるようにする

いままではエディタの実行ボタンから実行していましたが、Sheet上にボタンを配置して押下することで実行できるように変更します。

ボタン作成

Sheetメニュー内の「挿入」→「図形描画」をクリックします。

以下の図形アイコンを選択し「図形」→好きな形の図形を選択します。

ドラッグして適当な大きさのボタンを作成。ボタンをダブルクリックしてボタン名を入力。「保存して終了」をクリックします。

Sheet上にボタンが表示されます。

スクリプトを紐つける

Sheet上に表示されたボタンをクリック→右上のオプションボタンをクリック→「スクリプトを割り当て」を選択します。

スクリプトを入力する部分に先ほど作成したFunction名を入力してOKをクリックします。

上記まで設定完了後、セル1:1の内容を削除してボタン押下するとスクリプトが実行されて”Hello World”が入力されます。

メニューから実行できるようにする

いままで実行するアクションとしては、以下2点を紹介しました。

  • スクリプトエディタから実行ボタンをクリック
  • Sheetにボタンを作成し、スクリプトを紐つける

それ以外にSheetのメニューに追加する方法があるので紹介します。

スクリプトエディタにメニュー登録用のコードを追加する

以下コードを利用したいfunctionとは別に追加します。

function onOpen(event){
  // 配列で登録したいメニューを追加する
  var func = [
    // name:部分にメニューで表示したい名前
    // functionName:登録したいfunction名
    {name:'Hello World Function', functionName:'myFunction'}
  ];
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  // Sheet上のメニューに登録する名前
  sheet.addMenu('myMenu', func);
}

スクリプトエディタのメニューから「ファイル」→「保存」を選択します。

一度Sheetを閉じてマイドライブから作成したSheetを開くとMenu上に「myMenu」が追加されます。

クリック後に先ほど作成した「Hello World Function」を選択するとmyFunctionが実行されます。

まとめ

今回は実際にコードを入力して実行するところまでの最初の一歩を紹介しました。続けて実行部分について良く利用されるトリガの実行について紹介します。

タイトルとURLをコピーしました