OfficeScripts(オフィススクリプト)でセルの操作について紹介します。
セルの選択・取得・コピーから書式変更やセル結合まで一通り紹介しています。

説明用スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セルの選択(指定)・セルの値の取得
まずセルの選択とセル値の取得について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セルの選択・指定
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
}
セルの値の取得
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let value = sheet.getRange("A1").getValue(); // 任意のセルに変更してください(例: "A1")
}
Sponsored link
セルへの値の書き込み
次にセルへの値の入力について紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
function main(workbook: ExcelScript.Workbook) {
// シートを選択する
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
// セルに値を書き込み
cell.setValue("Hello"); // 任意の値に変更してください(例: "Hello")
}
Sponsored link
セル範囲の選択(指定)・セル範囲の値の取得
次にセル範囲の選択と取得について紹介します。基本的には一つのセルに対する操作方法と同じで、指定範囲が異なるだけです。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セル範囲の選択・指定
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セル範囲を選択する。
let range = sheet.getRange("A1:C3"); // 任意のセル範囲に変更してください(例: "A1:C3")
}
セルの値の取得
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セル範囲を選択する。
let values = sheet.getRange("A1:C3").getValue(); // 任意のセル範囲に変更してください(例: "A1:C3")
}
Sponsored link
セル範囲への書き込み
次にセル範囲への入力について紹介します。
値の書き込みには指定した範囲と同じ大きさの配列を用います。下記のスクリプト例と出力例を参考にしてください。
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セル範囲を選択する。
let range = sheet.getRange("A1:C3"); // 任意のセル範囲に変更してください(例: "A1:C3")
// セル範囲に値を設定する。任意の値に変更してください。
range.setValues([
["値1", "値2", "値3"],
["値4", "値5", "値6"],
["値7", "値8", "値9"]
]);
}
上記のスクリプトを実行するとこのような結果となります。


Sponsored link
セルのクリア
次にセルのクリアついて紹介します。設定を変えることで値のみや書式のみなどのクリアも可能です。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
// セルの値を削除する。
cell.clear()
}
clearメソッドでは()
内にクリアする内容を指定することができます。省略した場合はすべてがクリアされます。
ExcelScript.ClearApplyTo.all
: すべてをクリアExcelScript.ClearApplyTo.contents
: 値のみをクリアExcelScript.ClearApplyTo.formats
: 書式のみをクリアExcelScript.ClearApplyTo.hyperlinks
: ハイパーリンクのみをクリア
Sponsored link
セルのコピー・移動
次にセルのコピーついて紹介します。設定を変えることで値のみや書式のみなどのコピーも可能です。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セルのコピー
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// コピー元のセルを選択する。
let sourceCell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
// コピー先のセルを選択する。
const destinationCell = sheet.getRange("B1"); // 任意のセルに変更してください(例: "B1")
// コピー元からコピー先に値と書式をコピー
destinationCell.copyFrom(sourceCell, ExcelScript.RangeCopyType.all);
}
copyFromメソッドでは()
内にコピーする内容を指定することができます。
省略した場合はすべてがコピーされます。
ExcelScript.RangeCopyType.all
: すべてコピーExcelScript.RangeCopyType.values
: 値のみをコピーExcelScript.RangeCopyType.formats
: 書式のみをコピーExcelScript.RangeCopyType.formulas
: 数式のみをコピー
セルの移動
セルのコピーと途中までは同じ処理です。最後に元セルの値をクリアする部分だけ追加されています。
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// コピー元のセルを選択する。
let sourceCell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
// コピー先のセルを選択する。
const destinationCell = sheet.getRange("B1"); // 任意のセルに変更してください(例: "B1")
// コピー元からコピー先に値と書式をコピー
destinationCell.copyFrom(sourceCell, ExcelScript.RangeCopyType.all);
// コピー元のセルをクリアする。
sourceCell.clear()
}
Sponsored link
セルの書式設定(色変更・罫線)
次にセルの書式設定ついて紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
文字フォントの変更
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: "A1")
// フォントの色を変更する。
cell.getFormat().getFont().setColor("#FF0000"); // 任意の色に変更してください(例: "#FF0000")
}
copyFontメソッドには下記のようなメソッドがあります。変更したい項目によって設定してください。
setColor(color: string)
:フォントの色を設定します(例:"red"
,"#FF0000"
)。setSize(size: number)
:フォントサイズを設定します。setBold(isBold: boolean)
:太字を設定します。setItalic(isItalic: boolean)
:斜体を設定します。setUnderline(style: ExcelScript.FontUnderlineStyle)
:下線を設定します。
背景色の変更
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: A1")
// 背景色を設定する。
cell.getFormat().getFill().setColor("#FF0000"); // 任意の色に変更してください(例: "#FF0000")
}
基本的なカラーコード
色名 | カラーコード |
---|---|
黒 (Black) | #000000 |
白 (White) | #FFFFFF |
赤 (Red) | #FF0000 |
緑 (Green) | #00FF00 |
青 (Blue) | #0000FF |
黄色 (Yellow) | #FFFF00 |
シアン (Cyan) | #00FFFF |
マゼンタ (Magenta) | #FF00FF |
罫線(境界線)の設定
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// セルを選択する。
let cell = sheet.getRange("A1"); // 任意のセルに変更してください(例: A1")
// 罫線を設定する。
cell.getFormat().getRangeBorder(ExcelScript.BorderIndex.edgeTop).setStyle(ExcelScript.BorderLineStyle.continuous); //上の罫線
cell.getFormat().getRangeBorder(ExcelScript.BorderIndex.edgeBottom).setStyle(ExcelScript.BorderLineStyle.continuous); //下の罫線
cell.getFormat().getRangeBorder(ExcelScript.BorderIndex.edgeLeft).setStyle(ExcelScript.BorderLineStyle.continuous); //左の罫線
cell.getFormat().getRangeBorder(ExcelScript.BorderIndex.edgeRight).setStyle(ExcelScript.BorderLineStyle.continuous); //右の罫線
}
setStyleメソッドには下記のような設定値あります。状況に応じて変更してしてください。
ExcelScript.BorderLineStyle.continuous
:通常の線ExcelScript.BorderLineStyle.dot
:点線ExcelScript.BorderLineStyle.dashDot
:一点鎖線ExcelScript.BorderLineStyle.dash
:破線ExcelScript.BorderLineStyle.dashDotDot
:二点鎖線ExcelScript.BorderLineStyle.double
:二重線



setColorメソッドを用いれば罫線の色を変えることも可能です
Sponsored link
セルの結合・結合解除
最後にセルの結合ついて紹介します。
スクリプト内のセル範囲や変数名は例が入っていますので状況に応じて変更して使用してください。
セルの結合
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// 結合するセル範囲を選択する。
let range = sheet.getRange("A1:C1"); // 任意のセル範囲に変更してください(例: "A1:C1")
// セルを結合
range.merge();
}
セルの結合解除
function main(workbook: ExcelScript.Workbook) {
// シートを選択する。
let sheet = workbook.getActiveWorksheet(); // 任意のシートに変更してください(例: アクティブシート)
// 結合セルの範囲を選択する。
let range = sheet.getRange("A1:C1"); // 任意のセル範囲に変更してください(例: "A1:C1")
// セルの結合を解除する
range.unmerge();
}



結合されている範囲のどれかひとつのセルを選択しても解除できます
Sponsored link
オフィススクリプトを書籍で学習したいという方はコチラがオススメです。
コメント