「Excelシートから特定のセルや範囲の値を取得したいけど、どうすれば良いか分からない…」
そのように悩んでいませんか?
・Officeスクリプトでセルを取得するには、どのようにしたらいいの?
・セルを範囲で取得してみたい
今回は、Officeスクリプトの「getRange や getValues」を
詳しく解説します!
この記事では、Officeスクリプトの「セルの値を取得方法」について解説します。
Officeスクリプトには、シートのセルを取得・選択するためのさまざまなメソッドが用意されています。
セルを直接指定する方法や、選択範囲全体をまとめて取得する方法、現在選択中のセルにアクセスする方法など、作業内容に応じた最適なメソッドを使い分けられるのが特徴です。
本記事では、特に getRange
や getValues
といった、セルや範囲の値を取得するメソッドを中心に、目的に応じた選択方法を詳しく解説します。
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
この記事を読むと「できるようになる」こと
この記事を読むことで、以下の内容が理解できるようになります。
- Officeスクリプトでセルを取得する準備を知る
- セル取得のメソッド一覧を確認する (getRange・getRangeByIndexesなど)
- セル取得の実際の使用例を確認する
Officeスクリプトでセルを取得する準備 | シートを取得する方法
Officeスクリプトで、セルや範囲の値を取得するには、まず操作するシートを指定する必要があります。
ここでは、シートの取得に使える代表的なメソッドを一覧にまとめました。
シート取得方法の一覧
メソッド名 | 機能概要 | 使用例 |
---|---|---|
getActiveWorksheet | 現在アクティブなシートを取得します | workbook.getActiveWorksheet() |
getWorksheet | 指定した名前のシートを取得します | workbook.getWorksheet("Sheet1") |
addWorksheet | 新しいシートを追加し、取得します | workbook.addWorksheet("NewSheet") |
getWorksheets | すべてのシートを配列として取得します | workbook.getWorksheets() |
getActiveWorksheet の概要
本記事では、シート取得方法として getActiveWorksheet
を使用します。
- 機能
- 現在操作中のアクティブシートを取得します。
- 使い方
workbook.getActiveWorksheet()
を実行するとシートの参照が取得できます。
取得した変数sheet
を使い、getRange
やgetValues
などのメソッドでセルを操作できます。
このコードで取得した sheet
を使って、特定のセルや範囲を取得するメソッド(getRange
や getValues
など)を呼び出すことができます。
シートの取得は、すべてのセル取得操作の前提となる重要なステップですので、まずシートを取得してから続けてください。
getActiveWorksheet のコード例
function main(workbook: ExcelScript.Workbook) {
// アクティブシートを取得
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
// ここからセル取得メソッドを使用していきます
}
Officeスクリプトのセル取得メソッド一覧
Officeスクリプトには、セルや範囲を取得するためのメソッドがいくつか用意されています。
用途に合わせて、最適な方法でセルを選択することが可能です。以下に、基本的なセル取得メソッドとその概要を一覧にまとめました。
セルを取得するメソッド一覧
附番 | メソッド名 | 機能概要 | 使用例 |
---|---|---|---|
1 | getRange | 特定のセルまたはセル範囲を指定して取得 | sheet.getRange("A1:B2") |
2 | getRangeByIndexes | 行と列のインデックスで範囲を指定しセルを取得 | sheet.getRangeByIndexes(0, 0, 2, 2) |
3 | getValue | 単一セルの値を取得 | sheet.getRange("A1").getValue() |
4 | getValues | 指定範囲のセル値を二次元配列で取得 | range.getValues() |
5 | getActiveCell | 現在選択中のセルを取得 | sheet.getActiveCell() |
6 | getSelectedRanges | 現在選択中のセル範囲全体を取得 | workbook.getSelectedRanges() |
7 | getAreas | 現在選択中の複数セル範囲を取得し、各範囲を分割して扱う | selectedRanges.getAreas() |
8 | getUsedRange | 使用されているセル範囲全体を取得 | sheet.getUsedRange() |
より詳しい情報は、Microsoft公式のExcelScript.Range interfaceを参照してください。
1: getRange を使って特定のセルまたは範囲を取得する
getRange
は、Excelシート上の特定のセルやセル範囲を「A1」や「A1:B2」などのアドレス形式で指定して取得するための、Officeスクリプトの基本メソッドです。
- 用途
- 特定のセルや範囲を、直接アドレス(例:「A1」)で指定して取得する場合に使用します。
- 使用例
- 特定の範囲「A1」を取得し、その範囲内のデータを読み取ったり更新したりする際に便利です。
コード例
getRange("セルアドレス")
の形式で、取得したいセルまたはセル範囲のアドレスを指定します。
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let range: ExcelScript.Range = sheet.getRange("A1:B2"); // セル範囲A1からB2までを取得
console.log(range.getValues()); // 取得した値を表示
}
注意ポイント
getRange
でセル範囲を指定する際、範囲外のセル(シート上に存在しないセル)を指定するとエラーが発生します。
範囲指定を行うときは、指定したアドレスがシート上に存在するか確認しましょう。
2: getRangeByIndexes を使ってインデックスで範囲を指定する
getRangeByIndexes
メソッドは、行と列のインデックスを指定してセル範囲を取得するためのメソッドです。
- 用途
- 行と列の位置が動的に変わる場合や、特定のセル範囲をインデックス(番号)で柔軟に指定したい場合に使用します。
- 使用例
- データが追加されるリストや表で、シート上の位置が固定されていない範囲を取得する場合に便利です。
コード例
getRangeByIndexes(開始行, 開始列, 行数, 列数)
の形式で範囲を指定します。
以下のコード例では、シートの最初のセル(「A1」に相当する位置)から2行2列の範囲を取得し、その範囲内の値を表示しています。
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let range: ExcelScript.Range = sheet.getRangeByIndexes(0, 0, 2, 2); // 上から2行、左から2列の範囲を取得
console.log(range.getValues());
}
注意ポイント
getRangeByIndexes
は、行・列のインデックスと範囲のサイズを正確に指定する必要があります。
指定範囲がシートサイズを超えてしまうとエラーが発生しますので、範囲を取得する前に、インデックスや範囲サイズが適切か確認しておきましょう。
3: getValue を使って単一のセルの値を取得する
getValue
は、Excelシート上で特定の1つのセルの値を直接取得するためのメソッドです。
範囲内の複数のセルではなく、単一のセルのデータにアクセスする際に非常に便利です。
- 用途
- 単一のセルの値を取得したい場合に使用します。
シート上で特定の1つのセルから値を取得し、そのデータを他の処理に活用したい場合に最適です。
- 単一のセルの値を取得したい場合に使用します。
- 使用例
- 指定したセルの値(例えば、「A1」の値)を取得し、その値を基にデータを処理したり、別のセルに書き込んだりする際に便利です。
コード例
getRange("セルアドレス").getValue()
の形式で、取得したいセルのアドレスを指定して使用します。
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let cellValue: string | number | boolean = sheet.getRange("A1").getValue(); // セルA1の値を取得
console.log(cellValue); // 取得した値を表示
}
注意ポイント
getValue
は単一のセルを対象にしたメソッドです。
複数のセルから値を取得したい場合には、getValues
メソッドを使用しましょう。
取得するセルのデータ型は、数値、文字列、または論理値(true
/ false
)の場合があります。
データ型によって処理が異なる場合は、型を確認してから処理を進めるようにしましょう。
4: getValues で指定範囲内の値を取得する
getValues
は、指定したセル範囲の値を二次元配列形式で取得するメソッドです。
- 用途
- 指定したセル範囲の値を二次元配列形式でまとめて取得する場合に使用します。
- 使用例
- 特定のセル範囲のデータを一括で読み取り、データ処理や分析に活用する際に便利です。
コード例
以下のコードでは、getRange
メソッドで指定したセル範囲「A1」を取得し、範囲内のセル値を getValues
で読み取って表示します。
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let range: ExcelScript.Range = sheet.getRange("A1:B2");
let values: (string | number | boolean)[][] = range.getValues(); // 値を二次元配列で取得
console.log(values);
}
注意ポイント
getValues
は、範囲内のすべてのセル値を取得するため、範囲内に空のセルがある場合も空の値が含まれます。
値が空かどうかのチェックが必要な場合は、配列の要素を確認して処理しましょう。
5: getActiveCell で現在選択中のセルを取得する
getActiveCell
は、ユーザーが現在選択しているセル(アクティブセル)を直接取得するメソッドです。
対象のシートを取得してから操作する必要がないため、迅速にアクティブセルを取得・操作したい場合に便利です。
- 用途
- ユーザーが操作中のセルのデータを読み取ったり、更新したりする際に使用します。
例えば、選択中のセルの内容に基づき、特定の処理を実行するケースで便利です。
- ユーザーが操作中のセルのデータを読み取ったり、更新したりする際に使用します。
- 使用例
- 現在アクティブなセルの値を取得して、その値を基にした処理を行う場合に有効です。
コード例
以下のコードでは、現在選択中のセルを取得し、そのセルの値をコンソールに表示します。
function main(workbook: ExcelScript.Workbook) {
// アクティブなセルを取得
let activeCell: ExcelScript.Range = workbook.getActiveCell(); // 選択中のセルを取得
// アクティブなセルの値を表示
console.log(activeCell.getValue()); // 選択中のセルの値を表示
}
注意ポイント
getActiveCell
を使用する場合、シートを変数として取得する必要はありません。workbook.getActiveCell()
のみで現在のアクティブセルにアクセスできるため、コードが簡潔になります。getActiveCell
は、アクティブなセルが選択されていないとエラーが発生します。
事前にアクティブセルが存在するかを確認してから使用すると安全です。
6: getSelectedRanges で現在選択中のセル範囲を取得する
getSelectedRanges
は、ユーザーが選択中のセル範囲を取得するためのメソッドです。
複数のセル範囲が選択されている場合でも、そのすべてを一度に操作できるため、データの一括処理や書式設定を行いたいときに便利です。
- 用途
- 選択中の複数セル範囲のデータをまとめて取得し、操作したい場合に使用します。
- 使用例
- 選択した範囲のデータを一括で読み取って分析したり、全範囲の書式を変更したりする場合に役立ちます。
コード例
以下のコードでは、選択中のセル範囲を取得し、範囲ごとにセルの値を表示します。
function main(workbook: ExcelScript.Workbook) {
// 選択中のセル範囲を取得
let selectedRanges: ExcelScript.RangeAreas = workbook.getSelectedRanges();
// 選択範囲の値を表示
selectedRanges.getAreas().forEach((range) => {
console.log(range.getValues());
});
}
注意ポイント
getSelectedRanges
メソッドは、選択されている複数の範囲を一度に取得でき、RangeAreas
オブジェクトとして返します。
そのため、コード例のようにgetAreas()
メソッドで各範囲にアクセスし、それぞれの範囲のデータを処理できます。getSelectedRanges
はworkbook
から直接取得可能で、アクティブシートを指定する必要がありません。
そのため、コードがシンプルになり、すばやく選択範囲にアクセスできます。
7: getAreas で選択範囲内の個別セル範囲を取得する
getAreas
は、getSelectedRanges
メソッドで取得した RangeAreas
オブジェクトから、それぞれの選択範囲を個別に取得するためのメソッドです。
複数のセル範囲が選択されている際に、各範囲にアクセスし、それぞれのデータを個別に処理することができます。
- 用途
- 選択されている複数の範囲に対して、各範囲を個別に取得し操作したい場合に使用します。
例えば、各範囲に異なる処理を適用したり、特定の条件に基づいてデータを操作する際に便利です。
- 選択されている複数の範囲に対して、各範囲を個別に取得し操作したい場合に使用します。
- 使用例
- ユーザーが選択した複数のセル範囲に対して、範囲ごとにデータを確認したり、書式を変更したりする場合に役立ちます。
コード例
以下のコードでは、getSelectedRanges
で取得した複数の選択範囲から、getAreas
を使って個別の範囲ごとにセルの値を表示しています。
function main(workbook: ExcelScript.Workbook) {
// 選択中のセル範囲を取得
let selectedRanges: ExcelScript.RangeAreas = workbook.getSelectedRanges();
// 各選択範囲の値を表示
selectedRanges.getAreas().forEach((range) => {
console.log(range.getValues()); // 各範囲の値を個別に表示
});
}
注意ポイント
getAreas
メソッドは、RangeAreas
オブジェクトから各範囲(Range
オブジェクト)を個別に取得します。そのため、コード例のようにforEach
でループ処理を行うことで、各範囲に対して個別の処理が可能です。getSelectedRanges
メソッドでRangeAreas
を取得後にgetAreas
を使用することで、選択中の複数の範囲を簡単に分割し、範囲ごとに異なる処理を柔軟に適用できます。
8: getUsedRange で使用されているセル範囲全体を取得する
getUsedRange
メソッドは、データが入力されている最小の範囲を一括で取得できるメソッドです。
すべての使用セルを対象に処理を行いたい場合に便利です。
- 用途
- シート上で実際にデータが入力されている範囲全体を取得したい場合に使用します。
- 使用例
- すべてのデータが入力されている範囲を対象に処理を行いたい場合や、シート全体のデータを取得して集計・分析する際に便利です。
コード例
以下のコードでは、使用されている範囲を取得し、その範囲内のセル値を表示します。
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let usedRange: ExcelScript.Range = sheet.getUsedRange(); // 使用中のセル範囲を取得
console.log(usedRange.getValues()); // 使用中の範囲の値を表示
}
注意ポイント
getUsedRange
は、書式設定されたセル・空白スペースのセルも使用範囲に含むことがあります。
実際にデータが入力されたセルのみを対象にしたい場合は、追加のチェックが必要です。
getUsedRangeについて、別記事で詳細を解説しています。 ぜひご覧ください。
Officeスクリプトのセルを取得する方法の使用例をご紹介
それでは、Officeスクリプトでセルを取得する方法を紹介します。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
Officeスクリプトの基礎から応用までを効率よくしっかり学習したい方には、UdemyのOfficeスクリプト講座もおすすめです。
特に自己学習で進める場合、ビデオや実践例があると理解が進みやすくなります。
使用例1: 指定範囲のデータを取得して集計する
シートの特定範囲内にあるデータを取得し、特定の列の合計を算出する処理を実行します。
この操作を理解することで、範囲内のデータを自動で集計したり、分析する際に応用できます。
コード例 | 指定範囲のデータを取得して集計する
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let range: ExcelScript.Range = sheet.getRange("A1:C3"); // A1からC3の範囲を取得
let values: (number | string | boolean)[][] = range.getValues(); // 取得した値を二次元配列で格納
let sum: number = 0;
for (let i: number = 0; i < values.length; i++) {
let cellValue = values[i][1]; // 2列目(B列)の値を取得
if (typeof cellValue === 'number') {
sum += cellValue; // 数値があれば加算
}
}
console.log("B列の合計: ", sum);
}
処理結果
コードの動作概要
getRange("A1:C3")
で「A1」から「C3」までのデータを一括取得し、getValues
で範囲内の値を二次元配列として取得します。
for
ループを使い、二次元配列の中からB列(2列目)の数値のみを抽出し、合計します。
合計した結果をconsole.log
で表示し、B列の値が一目でわかるようにします。
このコードで使用している機能
- let (変数)
let
は変数を宣言するためのキーワードです。
- for文 (繰り返し処理)
for
は繰り返し処理を行います。
- getRange(セル範囲の取得)
getRange
を使ってシートの特定範囲を指定して取得します。
- getValues(指定範囲の値取得)
- セル範囲から値を取得し、二次元配列で格納します。
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- function main(workbook: ExcelScript.Workbook)
- Officeスクリプトのメイン関数「main」を定義しています。
workbookパラメータが渡され、Excelのワークブック全体を操作できるようになります。
このパラメータは「ExcelScript.Workbook型」で定義されており、これにより関数内でワークブックの操作が可能です。
- Officeスクリプトのメイン関数「main」を定義しています。
- let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
- この行では、現在アクティブなシートを取得しています。
「ExcelScript.Worksheet型」で宣言された「sheet」変数に格納することで、以降のコードでこのシートを対象とした操作を行います。
- この行では、現在アクティブなシートを取得しています。
- let range: ExcelScript.Range = sheet.getRange(“A1:C3”);
- getRange(“A1:C3”)メソッドを使用して、セル範囲「A1」から「C3」までを取得し、この範囲を「ExcelScript.Range型」の変数「range」に格納します。
これにより、指定した範囲内でのセル操作が可能になります。
- getRange(“A1:C3”)メソッドを使用して、セル範囲「A1」から「C3」までを取得し、この範囲を「ExcelScript.Range型」の変数「range」に格納します。
- let values: (number | string | boolean)[][] = range.getValues();
- 範囲内のセル値を二次元配列として取得し、「values」という変数に格納しています。
この配列は「number | string | boolean型」のデータを格納できるため、セル内に数値、文字列、論理値が入っている場合も一括で処理できます。
- 範囲内のセル値を二次元配列として取得し、「values」という変数に格納しています。
- let sum: number = 0;
- 合計を計算するための変数「sum」をnumber型で宣言し、初期値を「0」に設定します。
この変数を使って、B列の数値データを順次合計していきます。
- 合計を計算するための変数「sum」をnumber型で宣言し、初期値を「0」に設定します。
- for (let i: number = 0; i < values.length; i++)
- forループを使用して二次元配列の行数分だけ繰り返し処理を行います。
変数「i」はループカウンターで、配列の各行にアクセスします。
- forループを使用して二次元配列の行数分だけ繰り返し処理を行います。
- let cellValue = values[i][1];
- 配列「values」の2列目(B列のデータ)を「cellValue」変数に代入しています。
これにより、B列にあるすべてのセルデータに順番にアクセスできます。
- 配列「values」の2列目(B列のデータ)を「cellValue」変数に代入しています。
- if (typeof cellValue === ‘number’) { sum += cellValue; }
- B列のセル値が数値型であるかを確認し、数値の場合は合計変数「sum」に加算します。
この条件を使用することで、数値以外のデータが含まれていても安全に合計できます。
- B列のセル値が数値型であるかを確認し、数値の場合は合計変数「sum」に加算します。
- console.log(“B列の合計: “, sum);
- 合計結果をコンソールに出力します。
このメッセージにより、B列の合計値を確認できます。
- 合計結果をコンソールに出力します。
- }
- 関数「main」の終了を示しています。
総括・ポイント
このコード例では、forループを使用して、指定範囲内のセルデータを自動的に集計する手順が示されています。
配列処理と条件分岐を組み合わせることで、大量データの一括処理が可能です。
範囲指定やループ処理を活用することで、Officeスクリプトを使ったデータ処理がより効果的に自動化できます。
使用例2: 現在選択中のセルの値を変更する
この使用例では、ユーザーが現在選択しているセルにアクセスし、そのセルの値を確認してから変更します。
セルの値が数値の場合は10を加算し、それ以外の場合は新たに10を設定する動的な処理を行います。
コード例 | 現在選択中のセルの値を変更する
function main(workbook: ExcelScript.Workbook) {
let activeCell = workbook.getActiveCell(); // 現在選択中のセルを取得
let cellValue = activeCell.getValue(); // セルの値を取得
if (typeof cellValue === 'number') {
activeCell.setValue(cellValue + 10); // 数値なら10を加算
} else {
activeCell.setValue(10); // 数値でない場合は10を設定
}
}
処理結果
コードの動作概要
workbook.getActiveCell()
メソッドで、現在選択されているセルを取得し、activeCell
変数に格納します。
シート全体を指定することなく、選択されているセルに直接アクセスできる点がポイントです。
activeCell.getValue()
メソッドを使用して現在の値を取得し、その値の型を判別します。値が数値型であれば10を加算し、数値でなければ新たに10を設定します。
activeCell.setValue()
メソッドを使って、条件に基づいて変更された値をセルに設定します。
このコードで使用している機能
- let (変数)
let
は変数を宣言するためのキーワードです。
- if文 (条件分岐)
if
は条件分岐を行います。
- getActiveCell(現在のセル取得)
- 現在選択中のセルを取得するメソッドです。
- getValue(セルの値取得)
- 指定したセルから値を取得します。
- setValue(セルへの値の設定)
- 指定したセルに新たな値を設定します。
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- function main(workbook: ExcelScript.Workbook)
- Officeスクリプトのメイン関数「main」を定義しています。
workbookパラメータが渡され、Excelのワークブック全体を操作できるようになります。
このパラメータは「ExcelScript.Workbook型」で定義されており、関数内でワークブックの操作が可能です。
- Officeスクリプトのメイン関数「main」を定義しています。
- let activeCell: ExcelScript.Range = workbook.getActiveCell();
- getActiveCellメソッドを使って、現在選択中のセル(アクティブセル)を直接取得し、変数「activeCell」に格納しています。
この変数はExcelScript.Range型で宣言され、セルの値取得や設定に使用されます。
※ この場合、シートの取得は不要で、直接アクティブセルにアクセスできます。
- getActiveCellメソッドを使って、現在選択中のセル(アクティブセル)を直接取得し、変数「activeCell」に格納しています。
- let cellValue: number | string | boolean = activeCell.getValue();
- 選択されたセルの値を取得し、「cellValue」に格納します。
「number | string | boolean型」で定義しており、数値、文字列、または論理値(true/false)のいずれかが格納されます。
- 選択されたセルの値を取得し、「cellValue」に格納します。
- if (typeof cellValue === ‘number’) { activeCell.setValue(cellValue + 10); }
- if文でセルの値が数値型かどうかを確認します。
数値であれば、setValueメソッドを使用して現在の値に「10」を加算します。
- if文でセルの値が数値型かどうかを確認します。
- else { activeCell.setValue(10); }
- ifの条件が満たされなかった場合、つまりセルの値が数値以外であった場合には、値「10」を新たに設定します。
- }
- 関数「main」の終了を示しています。
総括・ポイント
このコード例では、ユーザーが選択したセルの値に対して条件付きの変更を行う方法を示しています。
選択セルに基づいた動的なデータ入力や加算ができるため、セル内容の変更が簡単に自動化できます。
条件分岐を使うことで、数値の有無に応じた柔軟なデータ操作が可能です。
使用例3: 使用されているセル範囲全体の背景色を変更する
シート上でデータが入力されているセル範囲全体を取得し、その範囲のセルの背景色を設定します。
このコードを使うことで、入力済みのデータ範囲に視覚的な強調を加えることができます。
コード例 | 使用されているセル範囲全体の背景色を変更する
function main(workbook: ExcelScript.Workbook) {
let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
let usedRange: ExcelScript.Range = sheet.getUsedRange(); // 使用中のセル範囲を取得
let fillFormat: ExcelScript.RangeFill = usedRange.getFormat().getFill(); // セルの塗りつぶし書式を取得
fillFormat.setColor("yellow"); // 塗りつぶし色を黄色に設定
}
処理結果
コードの動作概要
getUsedRange
メソッドで、シート上でデータが入力されているセル範囲全体を取得し、usedRange
という変数に格納します。
getFormat().getFill()
を使用して取得範囲の塗りつぶしフォーマット(背景色)を取得し、setColor("yellow")
で背景色を黄色に設定します。
このコードで使用している機能
- let (変数)
let
は変数を宣言するためのキーワードです。
- getUsedRange(使用中セル範囲の取得)
- データが入力されている範囲を一括で取得します。
- getFormat(書式設定)
- セル範囲の書式を取得します。
- getFill(塗りつぶし設定)
- セルの塗りつぶし(背景色)設定を取得します。
- setColor(背景色の設定)
- セル範囲の背景色を設定します。
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- function main(workbook: ExcelScript.Workbook)
- Officeスクリプトのメイン関数「main」を定義しています。
workbookパラメータが渡され、Excelのワークブック全体を操作できるようになります。
このパラメータは「ExcelScript.Workbook型」で定義されており、関数内でワークブックの操作が可能です。
- Officeスクリプトのメイン関数「main」を定義しています。
- let sheet: ExcelScript.Worksheet = workbook.getActiveWorksheet();
- 現在アクティブなシートを取得し、変数「sheet」に格納しています。
これにより、コード内でアクティブなシートに対して操作を行えるようになります。
- 現在アクティブなシートを取得し、変数「sheet」に格納しています。
- let usedRange: ExcelScript.Range = sheet.getUsedRange();
- getUsedRangeメソッドで、アクティブシート内でデータが入力されているセル範囲を一括取得し、変数「usedRange」に格納します。
ExcelScript.Range型で宣言されているため、範囲内のセル操作が可能です。
- getUsedRangeメソッドで、アクティブシート内でデータが入力されているセル範囲を一括取得し、変数「usedRange」に格納します。
- let fillFormat: ExcelScript.RangeFill = usedRange.getFormat().getFill();
- getFormat().getFill()を使用して、セルの塗りつぶし書式を取得し、「fillFormat」に格納します。
この変数はExcelScript.RangeFill型で宣言され、背景色やパターンの設定が可能です。
- getFormat().getFill()を使用して、セルの塗りつぶし書式を取得し、「fillFormat」に格納します。
- fillFormat.setColor(“yellow”);
- setColorメソッドで、塗りつぶし書式に黄色を設定します。
指定したセル範囲の背景色がすべて黄色に変更されます。
- setColorメソッドで、塗りつぶし書式に黄色を設定します。
- }
- 関数「main」の終了を示しています。
総括・ポイント
このコード例では、getUsedRangeメソッドを使用してデータが入力されている範囲全体を取得し、背景色を変更する方法を示しています。
これにより、使用されているセルだけを視覚的に強調でき、データの見やすさを向上させることが可能です。
この記事のまとめ
この記事では、OfficeスクリプトでExcelシートのセルや範囲の値を取得するためのさまざまな方法について解説しました。
Officeスクリプトを活用することで、セルや範囲のデータ取得を効率化し、Excel上のデータ操作を一層スムーズに行うことができます。
ポイントのおさらい
- シートの準備と取得
- まず、getActiveWorksheetを用いて現在のアクティブシートを取得し、操作対象を設定します。
⇒ 「Officeスクリプトでセルを取得する準備 | シートを取得する方法」をもう一度見る
- まず、getActiveWorksheetを用いて現在のアクティブシートを取得し、操作対象を設定します。
- 特定セルや範囲の取得
- getRangeやgetRangeByIndexesを使い、アドレス指定やインデックスでの範囲指定が可能。
特定の範囲内でのデータ取得・更新に便利です。
⇒ 「getRange を使って特定のセルまたは範囲を取得する」を見る
⇒ 「getRangeByIndexes を使ってインデックスで範囲を指定する」を見る
- getRangeやgetRangeByIndexesを使い、アドレス指定やインデックスでの範囲指定が可能。
- 現在選択中のセル・範囲の取得
- getActiveCell や getSelectedRanges を活用して、ユーザーが現在選択しているセルや範囲を取得する方法について解説しました。
getAreas を使うことで、getSelectedRanges によって取得された複数範囲のセルを個別にアクセスすることも可能です。
⇒ 「getActiveCell で現在選択中のセルを取得する」もう一度見る。
⇒ 「getSelectedRanges で現在選択中のセル範囲を取得する」もう一度見る。
⇒ 「getAreas で選択範囲内の個別セル範囲を取得する」もう一度見る。
- getActiveCell や getSelectedRanges を活用して、ユーザーが現在選択しているセルや範囲を取得する方法について解説しました。
- 使用中の範囲の取得
- データが入力されている範囲全体を取得するgetUsedRangeも紹介しています。
これらを使うと、効率的に必要なデータを取得できます。
⇒ 「getUsedRange で使用されているセル範囲全体を取得する」もう一度見る。
- データが入力されている範囲全体を取得するgetUsedRangeも紹介しています。
- 実践的な使用例
- Officeスクリプトのセル取得メソッドを使った実際のコード例を通して、データの集計やセルの動的な更新などの操作方法も解説しました。
⇒ 「Officeスクリプトのセルを取得する方法の使用例をご紹介」もう一度見る。
- Officeスクリプトのセル取得メソッドを使った実際のコード例を通して、データの集計やセルの動的な更新などの操作方法も解説しました。
さらに学ぶために
このまとめを参考にして、Excel上のデータ取得や自動化にOfficeスクリプトをぜひ活用してみてください!
基本的なメソッドをしっかり理解することで、Excelでの作業効率が格段に向上します。