はじめに
GASでセルに値を入力する
Googleスプレッドシートの操作を中心にGAS(GoogleAppsScript)の基本コードを紹介しています。初心者の方が順番に読んでくだけでGASの基礎コードが理解出来るようになればなと思って、短めの記事で進めて行きたいと思います!
今回は、セルへの値の入力のコードについて紹介します!
値の入力
スプレッドシートでスクリプトエディタを立ち上げて、次のコードをgsファイルに書きます。
function test(){
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().setValue("ひらちんの部屋");
}
は?って方は先にこちらをどうぞ。
GASのコードは、JavaScriptベースで作っているので、「function ◯◯(){ }」で書きます。処理の内容である{ }の中は次ですね。
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getActiveRange().setValue("ひらちんの部屋")
オブジェクト・メソッド・プロパティ
コードの説明の前に、プログラムコードの基本である「オブジェクト」「メソッド」「プロパティ」について簡単に説明しておきます。
プログラムコードはこの3つで成り立っていて、イメージで言うと「オブジェクト」は操作の対象の”モノ”、「メソッド」は”動き”、「プロパティ」は”状態”という感じです。
小難しいことを言い出すと混乱してしまうと思うので、最初はこんな感じのイメージで大丈夫だと思います。
オブジェクトやプロパティやメソッドは「.」ドットでつなげて表します。
今回のコードを分解すると次のようになります。
ちょっとややこしいかもしれませんが説明します。なんとなく感じてもらえればいいくらいの感じです。
セルを操作するには、SpreadsheetAppオブジェクトを操作します。SpreadsheetAppオブジェクトは、いろんなメソッド(動き)をする命令があるので、その中でgetActiveSpreadsheet()メソッドを使います。
これで今アクティブである(今使ってる)スプレッドシートのSpreadsheetオブジェクトが取得できます。
次に、取得したSpreadsheetオブジェクトのgetActiveSheet()メソッドで今アクティブ(今開いてる)なシートのSheetオブジェクトが取得でき、
更に、SheetオブジェクトのgetActiveRange()メソッドを使うことで、今アクティブな(今四角で囲まれてる)セルのRangeオブジェクトが取得できます。
更に更に、そのRangeオブジェクトのsetValue()メソッドを使うことで、RangeオブジェクトのValueプロパティに指定した値がセットできます。
ややこしいですね笑
操作対象にメソッドをつなげて命令を作っていくイメージで思ってもらえれば大丈夫です。
ここまでのことをつなげて日本語的にしてみます。
ってことになります。
では実行してみましょう!
A1セルに「ひらちんの部屋」と入力されました!
実行結果
おまけ
今回は、アクティブなもシートやセルで指定したのでActiveなんちゃらみたいな名前のメソッドを使いましたが、指定のセルのRangeオブジェクトに到達するまでには、色々な書き方があります。
実はActiveなんちゃらの場合は、かなり省略できます。
SpreadsheetApp.getActiveRange().setValue("ひらちんの部屋");
これでOKです。まぁ考えてみれば、getActiveRangeでどこか分かりますもんね笑
きちんとどのシートとかセルとか名前を指定する場合は次のような書き方になります。
【スプレッドシートの指定】
// スプレッドシートキーでの指定
openById("***スプレッドシートキー***")
// スプレッドシートのURLでの指定
openByUrl("***スプレッドシートのURL***")
スプレッドシートキーやスプレッドシートのURLで指定できます。スプレッドキーやURLは環境によって違いますのでご自身のものを指定して下さい。
【シートの指定】 ※「シート1」という名前のシートを指定する場合
// シート名での指定
getSheetByName("シート1")
シートの名前で指定できます。
【セルの指定】 ※「A1」セルを指定する場合
// 行番号と列番号で指定
getRange(1,1)
// セル名で指定
getRange("A1")
引数の「1,1」は、(行番号、列番号)となっていて、(1,1)はA1セルを表します。
なので全部合わせると、こんな感じになります。
SpreadsheetApp.openById("***スプレッドシートキー***").getSheetByName("シート1").getRange(1,1)
これで、A1セルが取得出来るので、これに続けてsetValueプロパティで値をセットできますね。
SpreadsheetApp.openById("***スプレッドシートキー***").getSheetByName("シート1").getRange(1,1).setValue("ひらちんの部屋")
まとめ
今回は、セルに値を入力する方法を紹介しました!これからスプレッドシートの操作に必要なオブジェクトやメソッド、プロパティについてどんどん紹介して行きます!
コメント