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」も表示されます。
カスタムメニューにメニューアイテムとサブメニューを追加
メニューアイテムを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」も追加されています。
|
カスタムメニューから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()]が実行され、アラートが表示されました。
まとめ:スプレットシートにカスタムメニューを追加して効率化
Googleスプレットシートにカスタムメニューを追加する方法を紹介しました。
Google Apps Script(GAS)を使えば、Googleのサービスとの連携などできて、もっとスプレッドシートを活用できます。
でも、作成したスクリプトを実行させるのに一手間かかるようだと、それ自体が面倒に感じるもの。
本記事で紹介した方法でGoogleスプレットシートにメニューアイテムを追加すれば、そんなスクリプトの実行を億劫に感じる事も軽減できます。
Google Apps Script(GAS)で簡単に実装できるので、是非試してみてください。
自宅からでもWeb制作・プログラミング・アプリ開発などが習得できるさまざまなコースをラインナップ。
非エンジニアでスキルを磨きたい方から、フリーランス、就職/転職を目指す方まで、専属のメンターがサポート。
最近は副業ブームもあり「 はじめての副業コース 」が人気です。
|
|
国内で10年前からサービスを提供しているタスク管理・プロジェクト管理ツール。
利用者が100万人を超え、エンジニアの方以外にも、事務やデザイナー、マーケター、営業など、多様な職種の方にお使いいただいています。 |
|
|
|