Google App Script(GAS)を使ってみよう Part 3

あなたはGASのことを、どのくらい知っていますか?Part1・Part2とGASの基本操作を学んできました。
今回の「Google App Scriptを使ってみよう」は、特定のセルに値を表示する方法です。

この記事では、GAS初心者から基本的な操作方法を学ぶことができます。
もしよかったら試しながら読み進めてみてください。

目次

特定の単一セルに値を表示する

function writeValueOnA1cellOfSheet1( ){

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet1’).getRange(‘A1’).setValue(‘テスト’)

}

Sheet1のA1セルに「テスト」が表示されました。

解説

SpreadsheetApp.openById(‘スプレッドシートID’)⇨ 指定したスプレッドシートを取得するためのコードです。

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet1’)⇨ 指定したスプレッドシートの中の「Sheet1」という名前のシートを取得するためのコードです。

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet1’).getRange(‘A1’)⇨ 指定したスプレッドシートの中の「Sheet1」というシートのA1セルを取得するためのコードです。

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet1’).getRange(‘A1’).setValue(‘テスト’)⇨ 指定したスプレッドシートの中の「Sheet1」というシートのA1セルに「テスト」と書き込むためのコードです。

getRangeでA1セルを取得する方法

getRange(‘A1’) = getRange(1,1)

getRange(開始行、開始列)

getRange(1,1) ⇨ 最初の1は、1行目を指していて、最後の1は1列目を指しています。
つまりgetRange(1,1)は、A1セルを取得していることになります。

getRange(1,1) は、 A1セルを取得していることになります。

function writeValueOnA1cellOfSheet2( ){

 SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet2’).getRange(1,1).setValue(‘テスト’)

}

 指定したスプレッドシートの「Sheet2」のA1セルに「テスト」という文字が表示されます。

Sheet2のA1セルに「テスト」が表示されます。

練習問題

下記の赤文字(ここにコードを書いてください)に、Sheet2のE1セルに「Jupyter」を表示するコードを書いてください。

function practiceWriteAdeccoOnCellE1OfSheet2( ){

 ‘ここにコードを書いてください’

}

答え⇩

1:function writeValueOnA1cellOfSheet2( ){

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet2’).getRange(‘E1’).setValue(‘Jupyter’)

}

または

2:function writeValueOnA1cellOfSheet2( ){

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet2’).getRange(1,5).setValue(‘Jupyter’)

}

答え1・2:どちらもSheet2のE1に「Jupyter」が表示されます。

特定の複数セルに値を表示する

function writeValuesOnCellRangeA1C3OfSheet3( ){

 const values = [[1,2,3],[4,5,6],[7,8,9]] ;

 SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet3’).getRange(‘A1:C3’).setValues(values)

}

指定したスプレッドシートの「Sheet3」のA1からC3セルに、1から9までの数字が表示されます。

Sheet3のA1からC3セルに、1から9の数字が表示されました。

なにこれ?

なにこれ? – – – [[1,2,3],[4,5,6],[7,8,9]]

[ ]は、行データを表現するときに使用します。
また、[ ]の中に、複数の行データ(=[ ])を入れると、複数行データを表現することができます。

[[1,2,3],[4,5,6],[7,8,9]]は3行3列の複数行データになります。

少し分解すると…

[
[1,2,3], —> 1行3列の行データ
[4,5,6], —> 1行3列の行データ
[7,8,9]  —> 1行3列の行データ
]

複数セルに値を表示するお作法

getRange( )で取得する複数セル範囲の大きさ(行列の大きさ)
setValues( )で表示したいものの大きさ(行列の大きさ)

getRange( )で指定する範囲の大きさと、setValues( )で設定するデータの大きさを一致させる必要があります。

例えば

const values = [[1,2,3],[4,5,6],[7,8,9]] —> 3行3列の複数行データ

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet3’).getRange(‘A1:C3’) —> 3行3列分の大きさ

練習問題

1:下記のaに、3列3行の複数行データを書いてください。
2:下記のb(ここにコードを書いてください)に、Sheet3のE5:G7に3列3行の複数行データを表示するコードを書いてください。

 (なお、3列3行の複数行データはvaluesという箱に格納するため、setValues( )のカッコの中はvaluesを指定してください)

function practiceWriteValuesOnCellRangeE1G3OfSheet3( ){

 const values = [[ a ],[ a ],[ a ]] ;

b:’ここにコードを書いてください’

}

答え⇩

function practiceWriteValuesOnCellRangeE1G3OfSheet3( ){

const values = [[1,2,3],[4,5,6],[7,8,9]] ;

SpreadsheetApp.openById(‘スプレッドシートID’).getSheetByName(‘Sheet3’).getRange(‘E5:G7’).setValues(values)

}

Sheet3のE5からG7セルに、1から9の数字が表示されました。

入力の際の注意

・スプレッドシートIDを間違えない
(スプレッドシートIDとは、URL:https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxx/edit のdの後ろxxxxxxxxxxxx 部分のことです。)
・getRange(開始行, 開始列)の行列番号間違えない。
(例:getRange(1, 1)は、最初の「1」は行番号、2番目の「1」は列番号を指しています。)
・ const values = [[1,2,3],[4,5,6],[7,8,9]] 複数データを入力する際、行と行の間もカンマで区切ることを忘れない。


弊社では、Google Apps Script を使用した、業務効率化自動化を行う部門があります。Google Work Spaceをご利用の企業様、個人事業主様、自動化などでお困りでしたら、弊社までお問い合わせください。
何百の自動化プログラムを組んできたエンジニアが、お客様の業務自動化をご支援いたします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次