Excel Office スクリプト セルへ値を設定/セルから値を取得

2023年3月20日

English version.

Office スクリプトにおけるセルの値の基本的な操作方法を紹介します。

解説

スクリプトの記録を使うとアクティブシートを対象にしますが、

起動する場所によって挙動が変わってしまうため、

シート名を指定しての操作を推奨します。

セルへ値を設定

以下のコードで任意のセルに値を設定します。(赤字は適宜変更

workbook.getWorksheet("シート").getRange("セルアドレス").setValue("設定値");

次の例ではテストシートのD4セルに123を設定します。

セルから値を取得

以下のコードで任意のセルから値を取得し、変数に格納します。(赤字は適宜変更

let 変数名 = workbook.getWorksheet("シート名").getRange("セルアドレス").getValue();

次の例ではテストシートのD4セルの値を取得し変数valに設定します。

セルからセルへの転記

以下のコードで任意のセルからセルに値を転記します。(赤字は適宜変更

let 変数名 = workbook.getWorksheet("転記元シート名").getRange("転記元セルアドレス").getValue();
workbook.getWorksheet("転記先テストシート").getRange("転記先セルアドレス").setValue(変数名);

次の例ではテストシートのD4セルの値を取得し変数valに設定し

その値をD5セルに設定します。(D4からD5への転記)

次のようにすると変数なしで転記します。

  workbook.getWorksheet("転記シート名").getRange("転記先セルアドレス").setValue(
    workbook.getWorksheet("転記テストシート").getRange("転記元セルアドレス").getValue()
  );

次のようにすると任意の計算をして転記します。(転記元が数値でないとエラーになります)

let 変数名 = workbook.getWorksheet("転記元シート名").getRange("転記元セルアドレス").getValue();
workbook.getWorksheet("転記先シート名").getRange("転記先セルアドレス").setValue(Number(変数名) + 加算する数);

次の例ではテストシートのD4セルの値を取得し変数valに設定し

その値に25を足してをD5セルに設定します。(D4からD5への転記)

Number関数は文字列を数値に変換する関数です。

これを利用しないと文字列として扱われてしまいエラーします。

数式が長くて読みづらいようであれば改行とインデントも可能です。

let 変数名 = workbook.getWorksheet("転記元シート名").getRange("転記元セルアドレス").getValue(); 
workbook.getWorksheet("転記先シート名").getRange("転記先セルアドレス").setValue(
 Number(変数名) + 加算する数
);

変数なしでも可能です。(読みづらくなりますが)

  workbook.getWorksheet("転記元シート名").getRange("転記元セルアドレス").setValue(
    Number(workbook.getWorksheet("転記先テストシート").getRange("転記先セルアドレス").getValue()) + 25
  );

セルアドレスでなく行・列番号で指定

getRange("セルアドレス")を次のように変更すると番号での指定になります。

この指定では1行目、1列目は0から始まる点に注意が必要です。

getCell(行番号 - 1, 列番号 - 1)

Office スクリプトを効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り700円またはKindle Unlimited (読み放題) で提供中です。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

Excel Office スクリプトの記事一覧

マクロ・VBA(オフライン版)の場合