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

Office Scriptsの基本文法とAPI基礎!Range(セル範囲)操作で学ぶExcel自動化の第一歩

Range(セル範囲)操作の基礎
Range(セル範囲)操作の基礎

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

生徒

「Excelでたくさんのセルをまとめて操作したいんですが、毎回ドラッグするのが大変です…」

先生

「それならOffice ScriptsのRange操作を覚えると楽になりますよ。セルの範囲をまとめて指定できます。」

生徒

「セルの範囲って、A1からC5みたいな指定のことですか?」

先生

「そうです。Office Scriptsでは、その範囲をRangeという仕組みで扱います。」

生徒

「パソコン操作が苦手でも理解できますか?」

先生

「大丈夫です。紙に表を書く感覚で説明していきます。」

1. Range(セル範囲)とは何か?

1. Range(セル範囲)とは何か?
1. Range(セル範囲)とは何か?

Office ScriptsにおけるRange(レンジ)とは、Excelのセルやセルのまとまりを指す仕組みです。普段ExcelでA1セルをクリックしたり、A1からD5までドラッグして選択したりしますが、その「選択した部分」をコードで表現したものがRangeです。

Excel自動化、Excelマクロ、Office Scripts、Excel Online、自動処理といったキーワードで検索されることが多く、Range操作は必ず最初に覚える重要なポイントです。パソコン初心者の方は「表のマス目をまとめて指定する方法」と考えると分かりやすいでしょう。

2. セルを1つ指定するRangeの基本

2. セルを1つ指定するRangeの基本
2. セルを1つ指定するRangeの基本

まずは一番シンプルな例です。A1セルだけを操作する場合、セル番号を文字で指定します。これはExcelを触ったことがない人でも、住所のようなものだと考えると理解しやすくなります。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A1");
  range.setValue("はじめてのOffice Scripts");
}

このコードでは、A1セルに文字を入力しています。「setValue」は「値をセットする」という意味の命令です。難しい言葉に見えますが、「セルに文字を書くボタン」だと思ってください。

3. 複数セルをまとめて指定する方法

3. 複数セルをまとめて指定する方法
3. 複数セルをまとめて指定する方法

Rangeは1つのセルだけでなく、複数のセルも指定できます。例えばA1からA5までの縦一列をまとめて操作することが可能です。これはExcel作業の時短、自動入力、データ整理でよく使われます。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1:A5").setValue("同じ文字を入力");
}

「A1:A5」は、A1からA5まで全部、という意味です。ドラッグ操作をコードに置き換えたイメージを持つと理解しやすくなります。

4. 行や列をまとめて操作する

4. 行や列をまとめて操作する
4. 行や列をまとめて操作する

Office Scriptsでは、行や列をまとめてRangeとして扱うこともできます。たとえば、1行目すべて、A列すべて、という指定が可能です。これは表全体の見出し作成や、データ初期化によく使われます。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("1:1").setValue("見出し行");
}

「1:1」は1行目すべてを意味します。Excel初心者の方は「横一列ぜんぶ」と覚えて問題ありません。

5. 数値を書き込んで計算の準備をする

5. 数値を書き込んで計算の準備をする
5. 数値を書き込んで計算の準備をする

Range操作は文字だけでなく、数字も扱えます。Excel自動化では、数値を入れて計算の土台を作ることが多く、Office Scriptsの基本APIとして重要です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("B1").setValue(100);
  sheet.getRange("B2").setValue(200);
}

数字はダブルクォーテーションを付けずに書きます。これは「数値」と「文字」を区別するためのルールです。パソコン操作が初めての方は、「数字はそのまま、文字はかぎかっこ」と覚えておくと便利です。

6. Rangeから値を読み取る考え方

6. Rangeから値を読み取る考え方
6. Rangeから値を読み取る考え方

Rangeは書き込むだけでなく、セルの中身を読み取ることもできます。読み取った値を別のセルに使うことで、Excel作業の自動化が一気に広がります。ここでは仕組みの考え方だけを押さえます。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const value = sheet.getRange("C1").getValue();
  sheet.getRange("C2").setValue(value);
}

「getValue」は「中身を取り出す」という意味です。難しく考えず、「セルの中をのぞく命令」とイメージしてください。

7. Range操作を理解すると何ができる?

7. Range操作を理解すると何ができる?
7. Range操作を理解すると何ができる?

Range操作を理解すると、Excel Onlineでの繰り返し作業、自動入力、表作成、データ準備が一瞬で終わるようになります。Office Scripts、Excel自動化、TypeScript基礎、セル操作、業務効率化といった検索キーワードに強く関係する内容です。

プログラミング未経験でも、「セルを指定して、値を入れる」「まとめて操作する」という考え方を覚えるだけで、Excel作業が大きく変わります。RangeはOffice Scriptsの中でも特に重要な基礎なので、ゆっくり何度も読み返してください。

まとめ

まとめ
まとめ

今回の記事では、Office Scriptsにおける最重要項目の一つである「Range(範囲)」の基本操作について詳しく解説してきました。Excelの自動化を実現する上で、セルを指定して値を書き込んだり、逆にセルから値を読み取ったりする操作は、避けては通れない必須のスキルです。プログラミングと聞くと難しく感じるかもしれませんが、要は「どのマス目(Range)」に対して「何をする(メソッド)」かを指示しているだけなのです。

Office Scriptsで学んだ主要なポイントの振り返り

これまでに学んだ内容を整理してみましょう。まず、特定のセル一つを指定する場合は getRange("A1") のように記述しました。そして、複数のセルをまとめて操作したいときは getRange("A1:C5") のように、Excelの関数でおなじみの形式を使って範囲を指定できます。

また、Office Scripts(TypeScript)を用いてExcel Online上のデータを操作する際は、単に文字を書き込むだけでなく、数値の扱いにも注意が必要でした。文字列は " "(ダブルクォーテーション)で囲み、数値はそのまま記述するというルールは、今後の条件分岐や計算処理でも繰り返し登場する基本中の基本です。

応用:複数のセルに異なる値を一括で設定する

一歩進んだ操作として、二次元配列(データの塊)を使って複数のセルに一度に異なる値を流し込む方法もあります。これを使えるようになると、大量のデータ処理が劇的に高速化されます。業務効率化やDX(デジタルトランスフォーメーション)の現場で重宝されるテクニックです。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  // A1からB2の範囲に、一気に値を設定する例
  const data = [
    ["項目名", "数値"],
    ["売上", 5000]
  ];
  sheet.getRange("A1:B2").setValues(data);
}

このように setValues(複数形)を使うことで、表形式のデータを一括で作成できます。手作業で一つずつ入力していた手間が、ボタン一つで完了するのは非常に爽快ですよね。

VBAとの違いを知る

以前からExcelマクロ(VBA)に触れていた方にとっては、書き方の違いに戸惑うこともあるかもしれません。参考までに、同じ「A1セルに値をいれる」という処理をVBAで書くと以下のようになります。


Sub WriteValue()
    Range("A1").Value = "VBAでの入力"
End Sub

Office ScriptsはWeb版のExcelでも動作し、クラウド環境との相性が抜群です。これからの時代のExcel自動化において、Range操作のマスターは最強の武器になるでしょう。

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

生徒

「先生、今日のレッスンでRange(レンジ)の使い方がかなりイメージできるようになりました!要するに、Excelの『住所』をコードで教えてあげればいいんですね。」

先生

「その通りです!素晴らしい理解ですね。住所(A1など)を指定して、そこに対して『書き込め(setValue)』とか『読み取れ(getValue)』と命令する。これがOffice Scriptsの基本構造です。」

生徒

「最初は『workbook』とか『worksheet』とか難しい言葉が並んでいて、パソコン初心者の私には無理かも……と思ったんですけど、一つひとつのパーツに役割があることがわかると、パズルのようで面白いです。」

先生

「そう言ってもらえると嬉しいです。プログラミングは魔法ではなく、正確な手順書を作る作業ですからね。特に sheet.getRange("1:1") で行全体を指定して見出しを作る方法は、実際の仕事でもよく使いますよ。」

生徒

「行全体をガバッと指定できるのは時短になりそうですね!あと、数字をいれるときはダブルクォーテーションがいらないっていうのも、間違えないように気をつけます。もし間違えたらどうなるんですか?」

先生

「良い質問ですね。もし数字を "100" と書いてしまうと、Excelはそれを『計算できない文字』として扱ってしまいます。合計を出したいときにエラーの原因になるので、『計算するなら裸の数字、名前やメッセージならクォーテーションで囲む』と覚えておきましょう。」

生徒

「なるほど、『計算できるかどうか』がポイントなんですね。これで、今まで手作業でポチポチ入力していた単調な作業から卒業できそうな気がしてきました!」

先生

「その意気です。まずは短いコードから試してみて、成功体験を積み重ねていきましょう。次は、これらのRange操作を組み合わせて、もっと複雑な『自動計算ツール』を作る方法にチャレンジしてみましょうか。」

生徒

「はい!もっと色々なことができるようになりたいです。よろしくお願いします!」

カテゴリの一覧へ
新着記事
New1
Excel VBA
Excel VBAで業務自動化!初心者でもわかる定型作業の自動化例
New2
Excel VBA
VBAの基本構造を理解しよう!モジュール・プロシージャ・関数の役割まとめ
New3
Office Scripts
Office Scriptsで大量シートを効率管理!Excelワークブック最適構造と自動化テクニック
New4
Excel VBA
Excel VBAが今でも使われ続ける理由とは?現場で評価されるポイントを徹底解説
人気記事
No.1
Java&Spring記事人気No1
Office Scripts
Office Scriptsで別ブックを開いてデータ取得する方法|OneDrive・SharePoint連携でExcel自動化
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBA参照設定エラー「参照が見つかりません」を完全解説!初心者でも原因と対処法がわかる
No.3
Java&Spring記事人気No3
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.4
Java&Spring記事人気No4
Excel VBA
Excel VBAは今後なくなる?将来性と企業での活用状況を詳しく解説
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.6
Java&Spring記事人気No6
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
No.7
Java&Spring記事人気No7
Excel VBA
VBAのコメントの書き方を完全ガイド!初心者でもわかる説明文の付け方
No.8
Java&Spring記事人気No8
Excel VBA
Excel VBAで列の追加・行の削除を自動化!InsertとDeleteの使い方を初心者向けに徹底解説