今回は効率化ネタではなく「こういう事出来ないかなぁ」と思う中でやってみたことをご紹介します。
正直やれたはいいけど、全く効率化するどころか活用どころが見当たらないものを作り出してしまったので「ふ〜ん、そういうこともできるんだ〜」くらいに見ていただければと思います。
ちなみに今からご紹介する内容はINDIRECT関数で解決します(悲しみ)
それでは見ていきましょう。
GASでシート名を取得する関数を作るアウトプットイメージ
まず今回作るものですが、こういったものを作ろうと思います。
具体的に効率化する業務がないのであくまで「こうなるよ」という例示までに…。
関数の作り方
それでは作り方をご紹介します。とても簡単です。
コピペしなくても出来ちゃうんじゃないかくらいに簡単です。
それでは見ていきましょう。
スクリプトエディタを立ち上げる
メニューの「ツール」から「スクリプトエディタ」を選びます。
スクリプトを貼り付ける
今回は以下のスクリプトを貼り付けましょう。
// シート名を取得する関数を作成する
function sheetname() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
Logger.log();
}
//スプレの名前を取得する関数を作成する
function sheetname2() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
return sheet.getName(); Logger.log(sheet);
}
//スプレのシートの名前を取得する関数を作成する
function sheetname3() {
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
return sheet2.getName(); Logger.log(sheet);
}
出来上がったものがこちら。
簡単にコードを解説すると、関数「sheetname」では以下3つの作業を1文で記載しています。
- アクティブなスプレッドシート を取得
- アクティブなシートを取得
- そのシートの名前を取得
関数「sheetname2」は上記3つの作業を以下2つに分割して記載しています。
(作業1つ1つを分けて書いた方が初心者的には理解しやすい)
- sheetという変数にアクティブなスプレッドシートを格納
- sheetに格納されたスプレッドシートの名前を取得
関数「sheetname3」は「sheetname2」の作業に1つ目で、アクティブなスプレッドシートのシートをsheet2に格納しています。2つ目の作業は同じです。
関数を使ってみる
使い方を簡単に紹介すると、コードで「function 関数名」という記載をしていますが、その関数名をスプレッドシート上で以下のように記載すれば設定した機能を使うことができます。
=sheetname()
→スプレッドシート のアクティブなシートの名前「テストだよ」を取得
=sheetname2()
→スプレッドシート の名前「test」を取得
=sheetname3()
→スプレッドシート のアクティブなシートの名前「テストだよ」を取得
使ってみるとこうなります。
まとめ
いかがでしたか。
あまり業務上で活かせるイメージがつかないものをご紹介してしまいましたが、逆に業務効率化はしっかり実務ベースで、その業務をしている人と一緒に、あるいはその業務をしている人が効率化しないと形骸化してしまうといういい例になったんじゃないかなと思います(こじつけ)
実務ベースで1つ1つ効率化・カイゼンして行きましょう!