こんにちは、色んな効率化が大好きなたぬ(@tanuhack)です!
スプレッドシートで表を作成するときに、シートの名前を取得したいことってありませんか?
Excelでは、次のようにCELL関数と文字列を操作する関数を組み合わせることで、シート名を取得することが出来ました。
スプレッドシートにもCELL関数は用意されていますが、『検査の種類』でfilenameを選択できません。
つまり、2018年6月現在、スプレッドシートの関数を組み合わせるだけでは、シートの名前を取得することが出来ないのです。
では、どうするか。
答えは、Google Apps Script(※通称GAS)を使って、シートの名前を取得します!
Google Apps Scriptとは、Googleが提供する11のサービスをクラウド上で操作できるJavascriptをベースとしたスクリプト言語です。
GASを使って関数を自作することで、スプレッドシートでもシート名が『関数』で取得できるようになりますよ♪
- スプレッドシートでGASを使えるようにする
- 関数を自作する
- スクリプトを実行する
- 動作確認をする
つまり、今回は『SHEETNAME』という関数を自作して、シート名を取得してみよう!というお話です。
『関数を自作』と書いてはいますが、後で紹介するコードをコピペで使えるので、気負いしないでくださいね。
スプレッドシートでGASを使えるようにする
STEP1:スプレッドシートを新規作成する
シート名もせっかくなので、変えておきましょう。
今回は『シートを取得する』という名前に変えています。
STEP2:[ツール]の中から[スクリプトエディタ]を選択
STEP3:スクリプトエディタが表示されたのを確認する
こんな画面が表示されたらOKです。
それではさっそく、SHEETNAME関数を自作するためのスクリプトを書いていきましょう!
関数を自作する
STEP1:スクリプトを記述する
以下のコードをスクリプトエディタに貼り付けてください。
// シート名を取得する関数を作成する
function sheetname() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
簡単に説明すると、『アクティブなシートの名前を取得する』という内容を書いた非常にシンプルなコードになっています。
プログラムに興味ない人は思考停止で貼り付けて全然大丈夫です(^o^)
STEP2:保存する
Command+Sを押すか、カメラのようなアイコンを押すことでスクリプトを保存することができます。
すると、次のようなアラートが表示されるので、名前を付けて保存しましょう。
保存が成功すると、赤文字の『※』がコードの横から消えます。
スクリプトを実行する
STEP1:実行ボタンを選択
ショートカットキーはありません。
STEP2:許可を確認する
デフォルトの状態のままだと、スクリプトは使えないので、スクリプト自体を承認しなければいけません。
[許可を確認]をクリックSTEP3:アカウントを選択する
ここでは、スプレッドシートを作成したGoogleアカウントを選択します。
STEP4:アプリを確認する
動作確認をする
それでは、さっそくスプレッドシートに戻って関数を入力してみましょう。
セルに『=sheetname()』と入力してみよう。
すると…。
Congratulations!
ちゃんとシート名が取得できていますね!
さいごに
今回はGASを使って、シート名を取得する関数を制作しました。
GASを使えば、関数では絶妙に手が届かないことがスクリプトから実行することが出来ます。
勉強するのは、少しだけハードルが高いかもしれませんが、「こんなことやあんなこともできそう」とスプレッドシートの発想だったり視野だったりが広がること間違いありません。
ぜひ、挑戦してみてください(^o^)