カテゴリ: Office Scripts 更新日: 2026/04/04

Office Scriptsの基本!Excel自動化で使うgetValues・setValues完全ガイド【初心者向け】

値の取得・設定(getValues/setValues)
値の取得・設定(getValues/setValues)

先生と生徒の会話形式で理解しよう

生徒

「Office ScriptsでExcelの値を自動で読み取ったり、まとめて入力したりできますか?」

先生

「できますよ。getValuesとsetValuesという命令を使えば、Excelのセルの値を取得したり設定したりできます。」

生徒

「セルを一つずつ操作するんですか?」

先生

「一つでもできますし、まとめて一気に操作もできます。Excel自動化の基本なので、順番に見ていきましょう。」

1. Office Scriptsとは?

1. Office Scriptsとは?
1. Office Scriptsとは?

Office Scriptsとは、Excel Onlineで使えるExcel自動化機能です。ブラウザ版のExcelで「自動化」タブからスクリプトを作成し、繰り返し作業を自動実行できます。プログラミング言語はTypeScriptを使いますが、難しく考える必要はありません。Excelの操作を文字で書いているだけです。

たとえば、毎日同じ場所に売上を入力する、データをまとめて集計する、特定のセルを更新する、といった作業を自動化できます。今回解説するgetValuesとsetValuesは、Excelの値の取得と設定を行う最重要命令です。

2. ExcelのセルとRangeの考え方

2. ExcelのセルとRangeの考え方
2. ExcelのセルとRangeの考え方

Office Scriptsでは、セルのかたまりをRangeと呼びます。Rangeとは、ExcelのA1やA1:B3のような範囲のことです。

たとえばA1は一つのセル、A1:B2は四つのセルの集まりです。このRangeから値を取り出すときにgetValuesを使い、値を書き込むときにsetValuesを使います。

イメージとしては、Excelの表を箱だと考えてください。getValuesは箱の中身を見る命令、setValuesは箱の中に物を入れる命令です。

3. setValuesで値を設定する基本

3. setValuesで値を設定する基本
3. setValuesで値を設定する基本

まずはExcelに値を入力する方法です。setValuesは複数セルにまとめて値を設定できます。二重の角かっこで囲むのが特徴です。これは二次元配列と呼ばれる形で、行と列を表しています。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A1:B2");

  range.setValues([
    ["商品", "価格"],
    ["りんご", 100]
  ]);
}

このコードを実行すると、A1からB2に表が作られます。二重の角かっこは、行ごとのまとまりを意味します。Excel自動化では、この形を覚えることが重要です。

4. getValuesで値を取得する方法

4. getValuesで値を取得する方法
4. getValuesで値を取得する方法

次に、Excelの値を読み取る方法です。getValuesはRangeの中身を取得します。取得した値は変数に入れて使います。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A1:B2");

  const values = range.getValues();
  console.log(values);
}

console.logは、値を確認するための命令です。ログとは記録という意味です。実行すると次のような結果になります。


[["商品","価格"],["りんご",100]]

このように、二次元配列の形で取得されます。Excelの表がそのまま配列になったと考えると理解しやすいです。

5. 取得した値を使って別のセルへ設定する

5. 取得した値を使って別のセルへ設定する
5. 取得した値を使って別のセルへ設定する

Office Scriptsでは、取得した値をそのまま別の場所へコピーできます。これにより、データの移動やバックアップが簡単にできます。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();

  const source = sheet.getRange("A1:B2");
  const target = sheet.getRange("D1:E2");

  const values = source.getValues();
  target.setValues(values);
}

このコードはA1:B2の内容をD1:E2にコピーします。Excel操作を自動化する際によく使われるパターンです。毎日の報告書作成やデータ整理に役立ちます。

6. 一つのセルだけ操作する方法

6. 一つのセルだけ操作する方法
6. 一つのセルだけ操作する方法

一つのセルだけを扱う場合もあります。その場合でもgetValuesとsetValuesは使えますが、単一セル専用のgetValueとsetValueもあります。ここでは基本に合わせてgetValuesを使います。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const cell = sheet.getRange("A1");

  cell.setValues([["こんにちは"]]);

  const value = cell.getValues();
  console.log(value);
}

一つのセルでも二重の角かっこになる点がポイントです。Excel自動化で混乱しやすい部分なので注意してください。

7. 数値をまとめて変更する応用例

7. 数値をまとめて変更する応用例
7. 数値をまとめて変更する応用例

取得した数値を計算してから再設定することも可能です。たとえば、価格を一律で二倍にする処理です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A1:A3");

  const values = range.getValues();

  for (let i = 0; i < values.length; i++) {
    values[i][0] = values[i][0] * 2;
  }

  range.setValues(values);
}

for文は繰り返し処理をする命令です。配列の中身を順番に取り出し、計算してから再設定しています。Excelマクロに似ていますが、より分かりやすい形で書けるのがOffice Scriptsの特徴です。

8. getValuesとsetValuesを使うメリット

8. getValuesとsetValuesを使うメリット
8. getValuesとsetValuesを使うメリット

Office Scriptsで値の取得と設定を覚えると、データ入力の自動化、集計の効率化、報告書の自動生成などが可能になります。Excel作業の時間短縮につながり、業務効率化や作業ミスの防止にも役立ちます。

特に大量データを扱う場合、まとめて取得し、まとめて設定する方法はとても重要です。Excel自動化を本格的に行うなら、getValuesとsetValuesは必須の基礎知識です。

まとめ

まとめ
まとめ

今回はOffice Scriptsを使ったExcel自動化の基本として、getValuesとsetValuesの使い方を中心に解説しました。Excel Onlineで動作するOffice Scriptsは、繰り返し行うデータ入力や集計作業を自動化できる非常に便利な機能です。特にRangeというセルの範囲を理解し、その範囲から値を取得するgetValues、そして値をまとめて設定するsetValuesを正しく使えるようになることが、Excel自動化の第一歩になります。

setValuesでは二次元配列という形で値を渡す必要があり、行と列の構造を意識することが重要でした。Excelの表は見た目ではただのマス目ですが、Office Scriptsでは配列として扱われます。この考え方を理解すると、複数セルへの一括入力や、表データのコピー、バックアップ、さらには数値の一括変換なども簡単に実装できます。

また、getValuesで取得したデータは、そのまま別のRangeにsetValuesで設定できるため、データ移動や転記作業の自動化にも活用できます。日々の売上集計、在庫管理、報告書作成など、Excel業務の効率化に直結する知識です。さらにfor文などの繰り返し処理と組み合わせることで、数値の一括変更や条件に応じた処理も実現できます。

Office ScriptsはTypeScriptで記述しますが、基本構造はとてもシンプルです。workbookからWorksheetを取得し、Rangeを指定し、getValuesやsetValuesで値を操作する。この流れを覚えるだけでも、Excel自動化の幅は大きく広がります。初心者の方はまず、小さな表を対象に値の取得と設定を繰り返し練習することで、配列の扱いに慣れていきましょう。

Excelマクロに慣れている方にとっても、Office Scriptsはブラウザ上で動作するという点で大きなメリットがあります。インストール不要で、クラウド環境でも実行できるため、チームでの共有や業務標準化にも向いています。getValuesとsetValuesを理解することは、Excel自動化、業務効率化、作業時間短縮のための基礎力を身につけることにつながります。

総合サンプルプログラム

最後に、値の取得、計算、再設定までをまとめて行うサンプルを確認しましょう。Excel自動化の流れを一つのスクリプトで理解できます。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();

  const inputRange = sheet.getRange("A1:A3");
  const outputRange = sheet.getRange("B1:B3");

  const values = inputRange.getValues();

  for (let i = 0; i < values.length; i++) {
    values[i][0] = values[i][0] * 1.1;
  }

  outputRange.setValues(values);
}

このスクリプトでは、A1からA3の数値を取得し、百分率を加算した結果をB列に出力しています。getValuesで取得した二次元配列を加工し、そのままsetValuesで設定するという基本パターンです。この流れをしっかり理解することが、Office ScriptsによるExcel自動化の核心です。

先生と生徒の振り返り会話

生徒

「Office ScriptsでExcel自動化をするには、まずRangeの考え方を理解することが大切なんですね。」

先生

「その通りです。Rangeはセルのかたまりです。そしてgetValuesで値を取得し、setValuesで値を設定する。この流れが基本です。」

生徒

「二次元配列で扱うのが最初は難しそうでしたが、Excelの表がそのまま配列になると考えれば分かりやすいですね。」

先生

「はい。配列の行と列を意識できれば、データの一括入力や一括計算も簡単にできます。これがExcel自動化の強みです。」

生徒

「取得した値をそのまま別の場所に設定できるのも便利ですね。報告書作成やデータ転記が楽になりそうです。」

先生

「まさにそこが重要です。Office ScriptsのgetValuesとsetValuesを使いこなせば、Excel業務の効率化や作業時間短縮が実現できます。まずは小さな自動化から始めて、徐々に応用へ広げていきましょう。」

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsの基本!企業環境で安全にExcel自動化を使うための利用制限と管理者設定
New2
Office Scripts
Office Scriptsの基本!TypeScriptの型注釈を理解してExcel自動化を安全に書く方法
New3
Office Scripts
Office Scriptsの基本!Excel自動化で使うgetValues・setValues完全ガイド【初心者向け】
New4
Office Scripts
Office Scriptsの基本!エラー表示とログ確認でExcel自動化を安全に進める方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBAのプロジェクト構成とモジュール管理!標準・シート・ThisWorkbookの違い
No.3
Java&Spring記事人気No3
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
No.4
Java&Spring記事人気No4
Excel VBA
VBAモジュールを安全にエクスポート・インポートする方法と注意点
No.5
Java&Spring記事人気No5
Excel VBA
ThisWorkbookに書くべき処理とは?VBAプロジェクトの正しい構成方法
No.6
Java&Spring記事人気No6
Excel VBA
Excel VBAのループ処理を徹底解説!For文とDo Loopで繰り返しを自動化
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAのブレークポイント設定と使い方!初心者でも理解できるデバッグの基本
No.8
Java&Spring記事人気No8
Excel VBA
標準モジュール・クラスモジュールの使い分けと追加方法を初心者向けに解説