liquidjumper GoogleAppsScript,Googleスプレッドシート Googleスプレットシートにカスタムメニューを追加する方法|Google Apps Script(GAS)

Googleスプレットシートにカスタムメニューを追加する方法|Google Apps Script(GAS)

googlespreadsheet_add-custommenu_gas_topimage

Google Apps Script(GAS)でスクリプトを作成すれば、面倒な操作や反復操作、Googleのサービスとの連携など、できることが広がります。

でも、スクリプトを実行するたびにGoogle Apps Script(GAS)のスクリプトエディタを開くは非効率

スプレッドシートの上に配置した、画像や図形にスクリプトを紐付ける方法もありますが、表示するデータに被るので邪魔になることもしばしば。

Googleスプレットシートのメニューバーに追加でメニューアイテムが追加できれば、わざわざスクリプトエディタを開いたり、データに被る図形を作成する必要もありません。

GoogleスプレッドシートではGoogle Apps Script(GAS)でカスタムメニューを作成することができます。

Google Apps Script(GAS)を少しでも触ったことがあれば簡単に実装できるので、参考にしてみてください。


Google Apps Script(GAS)でスプレットシートにカスタムメニューを追加

スプレッドシートのメニューバーにカスタムメニューを追加するには、Google Apps Script(GAS)でスクリプトコードを書く必要があります。

スプレッドシートのメニューから ツール > スクリプトエディタ をクリックし

Google Apps Script(GAS)のスクリプトエディタに移動します。

 ツール > スクリプトエディタ


スクリプトエディタを開いたら、関数名[onOpen]で次のようなスクリプトコードを書きます。

関数名[onOpen]はユーザーがファイルを開いたときに実行されるので、onOpen()関数内にメニューコードを記述すれば、ファイルを開くと自動的にカスタムメニューが追加表示できます。

function onOpen() {
  const customMenu = SpreadsheetApp.getUi()
  customMenu.createMenu('カスタムメニュー') //メニューバーに表示するカスタムメニュー名
      .addItem('追加メニューアイテム1', 'functionName') //メニューアイテムを追加
      .addToUi()
}


解説:

SpreadsheetApp.getUi()でスプレッドシートのUIを操作するメソッドを取得

.createMenu()にメニューバーに表示するカスタムメニュー名

.addItem(アイテム名,実行する関数名(function))に追加するメニューアイテムを指定します。


実行:

スクリプトエディタで[onOpen]を実行すると、スプレッドシートのメニューバーにカスタムメニューが追加されました。

「カスタムメニュー」をクリックすると、追加メニュー「追加メニューアイテム1」も表示されます。

追加メニュー「追加メニューアイテム1」も表示されます

カスタムメニューにメニューアイテムとサブメニューを追加

メニューアイテムを2個3個と増やしたい場合は、addItem()を追加するだけです。

又、サブメニューを追加する場合は、addSubMenu()でサブメニュー名を指定し、その下にaddItem()でサブメニューアイテムを追加します。

function onOpen() {
  const customMenu = SpreadsheetApp.getUi()
  customMenu.createMenu('カスタムメニュー')
      .addItem('追加メニューアイテム1', 'functionName') 
      .addItem('追加メニューアイテム2', 'functionName2')  //2個目のメニューアイテムを追加
      
        .addSeparator()  //セパレーター
        .addSubMenu(customMenu.createMenu('サブメニュー') 
        
          .addItem('サブメニューアイテム1', 'functionName3')  //サブメニューアイテムを追加
          .addItem('サブメニューアイテム2', 'functionName4') 
          
         )
      .addToUi()
}


解説:

addItem()でメニューアイテムを追加できます。

.addSubMenu(SpreadsheetApp.getUi().createMenu() にサブメニュー名を指定

addSubMenu()下に.addItem(アイテム名,実行する関数名(function))でサブメニューアイテムを追加します。


実行:

スクリプトエディタで[onOpen]を実行すると、カスタムメニューに2個目のメニューアイテム「追加メニューアイテム2」「サブメニュー」が追加されました。

「サブメニュー」をクリックすると、「サブメニューアイテム1」「サブメニューアイテム2」も追加されています。

「サブメニューアイテム1」「サブメニューアイテム2」も追加されています

カスタムメニューからGASスクリプトを実行する

追加したカスタムメニューからGASスクリプトを実行するには、addItem()の第二引数に、実行する関数名(function)を指定します。

addItem()で追加した、

メニューアイテム「追加メニューアイテム1」の第二引数に ‘functionName’
メニューアイテム「追加メニューアイテム2」の第二引数に ‘functionName2’

を指定し、同名の関数名でスクリプトコードを作成

function onOpen() {
  const customMenu = SpreadsheetApp.getUi()
  customMenu.createMenu('カスタムメニュー')
      .addItem('追加メニューアイテム1', 'functionName') 
      .addItem('追加メニューアイテム2', 'functionName2') 
        .addSeparator() 
        .addSubMenu(customMenu.createMenu('サブメニュー') 
        
          .addItem('サブメニューアイテム1', 'functionName3') 
          .addItem('サブメニューアイテム2', 'functionName4') 
          
         )
      .addToUi()
}
function functionName() {
 SpreadsheetApp.getUi() 
    .alert('カスタムメニューの[functionName]をクリックしました')
}
function functionName2() { 
 SpreadsheetApp.getUi() 
    .alert('カスタムメニューの[functionName2]をクリックしました')
}


カスタムメニュー > サブメニュー > サブメニューアイテム2 をクリックすると、[functionName2()]が実行され、アラートが表示されました。

[functionName2()]が実行され、アラートが表示されました

まとめ:スプレットシートにカスタムメニューを追加して効率化

Googleスプレットシートにカスタムメニューを追加する方法を紹介しました。

Google Apps Script(GAS)を使えば、Googleのサービスとの連携などできて、もっとスプレッドシートを活用できます。

でも、作成したスクリプトを実行させるのに一手間かかるようだと、それ自体が面倒に感じるもの。

本記事で紹介した方法でGoogleスプレットシートにメニューアイテムを追加すれば、そんなスクリプトの実行を億劫に感じる事も軽減できます。

Google Apps Script(GAS)で簡単に実装できるので、是非試してみてください。







 TechAcademy [テックアカデミー] は、選抜された現役エンジニアから学べるオンライン・プログラミングスクールです。

 自宅からでもWeb制作・プログラミング・アプリ開発などが習得できるさまざまなコースをラインナップ。

 非エンジニアでスキルを磨きたい方から、フリーランス、就職/転職を目指す方まで、専属のメンターがサポート。

 最近は副業ブームもありはじめての副業コース が人気です。






𝕏 ( 旧Twitter ) Facebook Pocket LINE はてブ

おすすめの関連記事



あわせてよく読まれている記事