GAS使ってみた -シートの値を取得しよう-

Excel スプレッドシート

Google Apps Script を使ってスプレッドシートの操作をしてみた。
Excel VBAと比較しながら記事にしましたので是非ご活用ください!

スポンサーリンク

GASの起動方法

Apps scriptは拡張機能⇒Apps Scriptから起動することが出来る。

コードの記載方法について

最初に起動するとfunction myFunctionと記載されているので{ }の間にコードを記述する

function 名称()の構成なので名称部分は分かりやすい名称に変更できる。

シートの値取得を取得するには? -記述方法について-

【Excelの場合】

フルで記載すると Excel名.Sheet名.Range(“セルの位置”).valueという形式で
同じExcel内のシート1のB2のセルの値を取得したい場合は下記のようになります。
 ThisWorkbook.Worksheets(“シート名”).Range(“B2”).Value

【スプレッドシートの場合】

Excelと似たような感じではあるがコードが違うので少し覚える必要があります。
使用しているスプレッドシートを表すのは下記のコードで表す。VBAのThisWorkbookの部分だ
SpreadsheetApp.getActiveSpreadsheet()
使用するシートを指定するのは下記のコードで表す。VBAのWorksheets(“シート名”)の部分だ
getSheetByName(‘シート名’)
セルの位置を指定するのは下記のコードで表す。VBAのRange(“B2”)の部分だ
getRange(‘B2’)
値の取得は下記のコードで表す。VBAのValueの部分だ
getValue()

フルで記載すると…めちゃ長くなるがこんな感じ
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘シート名’).getRange(‘B2’).getValue()

変数を使用した記載方法

ブックやシートを変数に格納して使用することでコードを短くすることが出来る
また、宣言部分のみの修正すれば新しく記述する際に過去のコードをコピーしやすくなるので
変数を意識したコーディングを行うと応用がし易くなります。

【Excelの場合】

Excelの場合はDim 変数名 AS 要素 の内容で宣言をしてSetを使用して格納します。
Set 変数名 = 指定した要素の内容

ブックの指定は下記のように記述します。
Dim Book1 As Workbook
Set Book1 = ThisWorkbook
シートの指定は下記のように記述します。
Dim Sheet01 As Worksheet
Set Sheet01 = Worksheets(“シート名”)
使用したいシート名がSheet01に変数に入れているので
Sheet01に対してRangeを使用できるようになった。
取得したい場合は下記のように記述します。
Sheet01.Range(“B2”).Value
ただこのままだとエラーなのでこの値をどうするか記述が必要です。

VBAで使用する場合は下記のように記述して使用しましょう。
Dim Book1 As Workbook
Set Book1 = ThisWorkbook
Dim Sheet01 As Worksheet
Set Sheet01 = Worksheets(“Sheet1”)

【スプレッドシートの場合】

Excelと同じように変数を格納できるので活用しよう。
記述方法は const 変数名 = 要素 で変数に格納することが出来る
スプレッドシートの宣言は下記のように記述します。
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
シートの宣言は下記のように記述します。
  const sheet01 = spreadsheet.getSheetByName(‘シート名’)

シートまで指定できたので値をとれるようになりました。
B2セルの値をとるのは下記のように記述します。
sheet01.getRange(‘B2’).getValue()
ただこのままだとエラーなのでこの値をどうするか記述が必要です。

シートの値を取得してみよう

セルの値を取得してメッセージに表示してみる

シートの指定までできたのでセルの値を取得してメッセージボックスを表示させてみよう

【Excelの場合】

シートの指定までできていればメッセージの出力は簡単です。
Msgbox 値で記述するとメッセージボックスを表示させることが出来ます。
記述したのは下記のとおりです。
MsgBox Sheet01.Range(“B2”).Value

VBAのコードはこんな感じなので使用する場合はコピーして使用してみよう

Sub セルの値を取得()
Dim Book1 As Workbook
Set Book1 = ThisWorkbook
Dim Sheet01 As Worksheet
Set Sheet01 = Worksheets(“Sheet1”)
MsgBox Sheet01.Range(“B2”).Value
End Sub

【スプレッドシートの場合】

スプレッドシートでメッセージボックスを表示するには
Browser.msgBox(値) と記述する必要があります。
B2のセルの値をメッセージボックスに表示する場合は下記のように記述します。
Browser.msgBox(sheet01.getRange(‘B2’).getValue())
VBAと違いセルを囲んでるのはシングルクオーテーションなので間違えないように!

GASのコードはこんな感じなので使用する場合はコピーして使用してみよう
function シートの値取得()
{
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet01 = spreadsheet.getSheetByName(‘シート名’); 
Browser.msgBox(sheet01.getRange(‘B2’).getValue());
}

コードの実行はどうやるの?

作成したコードを実行してみよう

【Excelの場合】

Excelの場合はVBA上から起動するプログラムを指定して▶のボタンを押すかF5で起動できます。
F8を押すとデバッグで一行ずつ確認することもできる。

【スプレッドシートの場合】

スプレッドシートも同様にGASから起動することが出来ます。
同じように▶の実行ボタンをクリックして起動することが出来る。

まとめ

まだ使用し始めたばかりなので基礎中の基礎な感じですが、
馴れたら違和感なくコーディングできそうです。

今後もVBAと比較しながら記事を書いていきますのでよろしくお願いします!

コメント

タイトルとURLをコピーしました