Officeスクリプトで罫線を引く方法|色・太さ・削除まで完全ガイド

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
Officeスクリプトでセルの罫線を引く方法アイキャッチ

Officeスクリプトで罫線を引きたいとき、VBAの Borders と同じ感覚で探すと、getFormat()、getRangeBorder()、BorderIndex など似た名前が出てきて迷いやすいです。

結論からいうと、Office Scriptsでは「セル範囲を選ぶ → 書式を取る → 罫線の場所を選ぶ → 線種・色・太さを指定する」という順番で書きます。この記事では、外枠、内側の格子、対角線、色、太さ、削除、Power Automate連携まで、実行結果画像と一緒にまとめます。

サクッと結論

急いでいる場合は、まず下の「外枠だけ罫線を引く」コードを使ってください。
Sheet1 と A1:D5 を自分のシート名・範囲に変えれば、黒い細線で表の外枠を引けます。

この記事でできること
  • Officeスクリプトでセル・セル範囲に外枠、内側罫線、対角線を引く
  • getRangeBorder()、BorderIndex、BorderLineStyle、BorderWeight の使い分けを理解する
  • 罫線の色、線種、太さ、削除方法を実務コードで使い分ける
  • Power Automateから範囲を渡して、帳票の見た目を自動で整える流れを確認する
よく使う度
難しさ
覚えておくと安心度

この記事は「必要なコードだけを拾いたい人」と「なぜその指定になるのかまで理解したい人」の両方に合わせています。最短で使うなら基本コード、迷ったら早見表、実務に合わせるなら使用例、エラー時はFAQの順に確認してください。

この記事の探し方

最初は大きな目的だけ選んでください。リンク名だけで選ばせず、移動先で何が解決できるかまで分かるようにしています。

スクロールできます
今やりたいことここで確認できる内容
すぐ使える基本コードを見る外枠・格子・罫線削除の3パターン。まずコピペして動かしたい方に向いています。
指定値の意味を確認するgetRangeBorder()、BorderIndex、線種、太さ、色の対応関係を整理します。
実務の使用例から選ぶセル単体、範囲、対角線、見出し行、Power Automate連携など、用途別コードへ進めます。
うまく動かない原因を探すシート名、範囲、内側罫線、削除漏れ、Power Automate実行時のつまずきを確認します。
目次

Officeスクリプトで罫線を引く基本コード

まずは、Officeスクリプトで罫線を引く基本パターンです。外枠、表全体の格子、削除の3つを押さえると、ほとんどの帳票整形に応用できます。

まず使うコードを選ぶ

スクロールできます
やりたい操作このコードでできること
外枠だけ罫線を引く表の外側だけを囲みたいとき。帳票の枠だけ先に整える基本形です。
表全体を格子状にする行と列の境目まで線を入れ、一覧表として読みやすくしたいときに使います。
罫線だけを削除する値や背景色は残したまま、線だけを消したいときの書き方です。

外枠だけ罫線を引く

表全体を囲みたいだけなら、上、下、左、右の4辺を指定します。Microsoft Learnの RangeBorderリファレンス では、getRangeBorder() で罫線を取得し、setStyle() や setWeight() で見た目を設定する流れが確認できます。

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("A1:D5");
  const format = range.getFormat();

  const outerBorders: ExcelScript.BorderIndex[] = [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight
  ];

  outerBorders.forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor("#000000");
    border.setWeight(ExcelScript.BorderWeight.thin);
  });
}
Office Scriptsで表の外枠に罫線を引いたExcel画面
コード実行後、指定範囲の外側4辺に罫線が引かれます。内側の線はまだ入っていません。

edgeTop、edgeBottom、edgeLeft、edgeRight が外枠です。線を引く場所は BorderIndex、線の見た目は BorderLineStyle、色は setColor()、太さは BorderWeight で指定します。

表全体を格子状にする

一覧表らしく見せたい場合は、外枠に加えて insideHorizontal と insideVertical を追加します。行と列の区切り線が入るので、データの境目が追いやすくなります。

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:E6");
  const format = range.getFormat();

  const gridBorders: ExcelScript.BorderIndex[] = [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight,
    ExcelScript.BorderIndex.insideHorizontal,
    ExcelScript.BorderIndex.insideVertical
  ];

  gridBorders.forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor("#666666");
    border.setWeight(ExcelScript.BorderWeight.thin);
  });
}
Office Scriptsで表の内側に横罫線と縦罫線を引いたExcel画面
内側罫線を追加すると、一覧表の行と列が見やすくなります。

1行だけ、または1列だけの範囲では、内側の横線・縦線は見た目に出ません。たとえば A1:D1 は1行だけなので、insideHorizontal を指定しても行と行の間がありません。

罫線を削除する

罫線だけを消したい場合は、各罫線に ExcelScript.BorderLineStyle.none を指定します。セルの値、背景色、フォントは残したまま、線だけを消せます。

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  const allBorders: ExcelScript.BorderIndex[] = [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight,
    ExcelScript.BorderIndex.insideHorizontal,
    ExcelScript.BorderIndex.insideVertical,
    ExcelScript.BorderIndex.diagonalDown,
    ExcelScript.BorderIndex.diagonalUp
  ];

  allBorders.forEach((borderIndex) => {
    format.getRangeBorder(borderIndex)
      .setStyle(ExcelScript.BorderLineStyle.none);
  });
}
Office ScriptsでforEachを使って罫線を一括削除したExcel画面
削除対象を配列にまとめると、外枠・内側・対角線を一括で消せます。

少し長くなっても処理を1つずつ確認したい場合は、次のように罫線位置を個別に指定して削除しても問題ありません。初心者のうちは、まず1つずつ書いて動きを確認し、慣れてきたら配列と forEach にまとめる流れがおすすめです。

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  format.getRangeBorder(ExcelScript.BorderIndex.edgeTop)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.edgeRight)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.edgeBottom)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.edgeLeft)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.insideHorizontal)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.insideVertical)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.diagonalDown)
    .setStyle(ExcelScript.BorderLineStyle.none);
  format.getRangeBorder(ExcelScript.BorderIndex.diagonalUp)
    .setStyle(ExcelScript.BorderLineStyle.none);
}
Office Scriptsで罫線を1つずつ削除した結果
1つずつ削除する書き方は、どの罫線を消しているか確認しやすいのがメリットです。

なお、Microsoft Learnの ClearApplyTo を使うと、罫線だけでなく背景色やフォントなどの書式もまとめて消せます。罫線だけ消すなら none、書式全体を初期化したいなら range.clear(ExcelScript.ClearApplyTo.formats) と分けて考えると安全です。

getRangeBorderとBorderIndexの使い方を整理する

Officeスクリプトの罫線コードは、名前だけ見ると長く感じます。ただ、役割はシンプルです。getFormat() が書式の入口で、getRangeBorder() が罫線の場所を取り出す命令です。

罫線指定の意味を選ぶ

スクロールできます
確認項目説明
getFormatからgetRangeBorderへ進む流れ罫線を直接セルに書くのではなく、書式の入口から罫線を取り出す考え方を確認します。
BorderIndexで罫線の場所を選ぶ方法上、下、左、右、内側、対角線など、どの線を指定すればよいかを表で確認します。
線種・太さ・色の指定方法setStyle()、setWeight()、setColor() の使い分けを整理します。

getFormatからgetRangeBorderへ進む

罫線設定は、セル範囲そのものに直接書くのではなく、セル範囲の書式オブジェクトに対して行います。Microsoft Learnの RangeFormat では、罫線だけでなく、塗りつぶし、フォント、配置、列幅、行の高さなどの書式操作が扱われています。

スクロールできます
順番コード意味
1sheet.getRange("A1:D5")罫線を引きたいセル範囲を選ぶ
2range.getFormat()セル範囲の書式情報に進む
3format.getRangeBorder(...)上、下、左、右など罫線の場所を選ぶ
4setStyle() / setColor() / setWeight()線種、色、太さを指定する

VBAで罫線を書いていた人は、xlEdgeTop や xlContinuous を、Office Scripts側の ExcelScript.BorderIndex や ExcelScript.BorderLineStyle に置き換えると考えると移行しやすくなります。

BorderIndexで罫線の場所を選ぶ

罫線の場所は、Microsoft Learnの BorderIndex 一覧 にある値で指定します。実務でよく使うのは、外枠4つと内側2つです。

BorderIndexは線を引く場所を選ぶ指定値
スクロールできます
指定値意味よく使う場面注意点
edgeTop上罫線表の上端、見出し行の上外枠の一部
edgeBottom下罫線見出し行の下、合計行の下見出し強調でよく使う
edgeLeft左罫線表の左端外枠の一部
edgeRight右罫線表の右端外枠の一部
insideHorizontal範囲内の横罫線一覧表の行区切り複数行の範囲で有効
insideVertical範囲内の縦罫線一覧表の列区切り複数列の範囲で有効
diagonalDown右下がりの対角線入力不要セル、特殊帳票通常の一覧表では多用しない
diagonalUp右上がりの対角線入力不要セル、特殊帳票通常の一覧表では多用しない
Office Scriptsでセルに対角線の罫線を引いたExcel画面
対角線は diagonalDown と diagonalUp で指定します。

BorderLineStyle・BorderWeight・色の指定

線の種類は Microsoft Learnの BorderLineStyle、太さは Microsoft Learnの BorderWeight で指定します。まずは、通常線なら continuous、削除なら none、太さは thin または medium を使うと分かりやすいです。

スクロールできます
やりたいこと指定例実務での使いどころ
普通の実線にするExcelScript.BorderLineStyle.continuous外枠、格子、基本の罫線
点線にするExcelScript.BorderLineStyle.dot補助線、入力予定欄
破線にするExcelScript.BorderLineStyle.dash仮の区切り、下書き感のある線
一点鎖線にするExcelScript.BorderLineStyle.dashDot区切り線を目立たせたいとき
二重線にするExcelScript.BorderLineStyle.double合計行、締め線
罫線を削除するExcelScript.BorderLineStyle.none罫線だけ消したいとき
細線にするExcelScript.BorderWeight.thin通常の一覧表
太線にするExcelScript.BorderWeight.thick外枠や重要な合計行

色は setColor("#000000") のようにHTMLカラーコードで指定できます。実務帳票では、すべてを濃い色や太線にするより、通常行は薄いグレー、見出しや合計行だけやや太くする方が読みやすくなります。

Office Scriptsで罫線の線種を実線・破線・一点鎖線に変えたExcel画面
線種を変えると、同じ表でも強調したい場所を分けられます。

Officeスクリプトの罫線使用例とPower Automate連携

ここでは、セル1つ、セル範囲、内側罫線、対角線、線種変更、太さ、色、削除、Power Automate連携まで、実務で使う罫線パターンをまとめます。必要な例だけコピーして、シート名と範囲を変えてください。

実務で使うパターンを選ぶ

スクロールできます
使いたい場面見られる内容
セル単体・範囲・対角線の使用例1セルだけ、セル範囲の外側、セル範囲の内側、対角線を引くコードを選べます。
線種・太さ・色を変える使用例破線、太線、色付き罫線、見出し行と合計行の強調など、見た目の調整を扱います。
Power Automate連携のコードフローからシート名や範囲を渡し、帳票の仕上げとして罫線を整える例です。

セル単体・範囲・対角線の使用例

セル・範囲・斜線のコードを選ぶ

スクロールできます
コード何ができるか
セル1つの外枠に罫線を引くA1 など、特定の1セルだけを目立たせたいときに使います。
セル範囲の外側に罫線を引く表全体の外枠だけを囲み、内側の線は増やしたくないときの書き方です。
セル範囲の内側に罫線を引く表の行区切り・列区切りを見やすくするため、内側だけに線を追加します。
対角線の罫線を引く入力不可セル、対象外セル、打ち消し表現などで使う斜線の例です。

セル1つの外枠に罫線を引く

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const cell = sheet.getRange("A1");
  const format = cell.getFormat();

  [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight
  ].forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor("#000000");
    border.setWeight(ExcelScript.BorderWeight.thin);
  });
}
Office ScriptsでA1セル1つの外枠に罫線を引いた結果
セル単体の外枠を設定する例です。入力欄やチェック欄の強調に使えます。

セル範囲の外側に罫線を引く

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("A1:C3");
  const format = range.getFormat();

  [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight
  ].forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor("#000000");
    border.setWeight(ExcelScript.BorderWeight.thin);
  });
}
Office ScriptsでA1からC3の外側に罫線を引いた結果
セル範囲の外側だけを囲む例です。表全体の枠を見せたいときに使います。

セル範囲の内側に罫線を引く

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  const insideHorizontal = format.getRangeBorder(
    ExcelScript.BorderIndex.insideHorizontal
  );
  insideHorizontal.setStyle(ExcelScript.BorderLineStyle.continuous);
  insideHorizontal.setColor("#000000");
  insideHorizontal.setWeight(ExcelScript.BorderWeight.thin);

  const insideVertical = format.getRangeBorder(
    ExcelScript.BorderIndex.insideVertical
  );
  insideVertical.setStyle(ExcelScript.BorderLineStyle.continuous);
  insideVertical.setColor("#000000");
  insideVertical.setWeight(ExcelScript.BorderWeight.thin);
}
Office ScriptsでB2からD4の内側に横罫線と縦罫線を引いた結果
内側罫線は、表のセルごとの境界をはっきり見せるときに使います。外枠も必要な場合は外枠4辺も追加してください。

対角線の罫線を引く

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const cell = sheet.getRange("C3");
  const format = cell.getFormat();

  const diagonalDown = format.getRangeBorder(ExcelScript.BorderIndex.diagonalDown);
  diagonalDown.setStyle(ExcelScript.BorderLineStyle.continuous);
  diagonalDown.setColor("#000000");

  const diagonalUp = format.getRangeBorder(ExcelScript.BorderIndex.diagonalUp);
  diagonalUp.setStyle(ExcelScript.BorderLineStyle.continuous);
  diagonalUp.setColor("#000000");
}
Office Scriptsで対角線の罫線を引いた結果

線種・太さ・色を変える使用例

線の見た目を変えるコードを選ぶ

スクロールできます
変更したい内容ここで確認できること
線種を変える実線、破線、点線など、BorderLineStyle の違いをコードで確認します。
太さを変えるthin、medium、thick を使い、重要な線だけ太くします。
色を変えるsetColor("#D83B01") のように、HTMLカラーコードで罫線色を指定します。
見出し行と合計行を強調する見出しの下線を太線、合計行の上線を二重線にして、帳票らしく整える実務例です。

線種を変える

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  const top = format.getRangeBorder(ExcelScript.BorderIndex.edgeTop);
  top.setStyle(ExcelScript.BorderLineStyle.dashDot);
  top.setColor("#000000");
  top.setWeight(ExcelScript.BorderWeight.thin);

  const right = format.getRangeBorder(ExcelScript.BorderIndex.edgeRight);
  right.setStyle(ExcelScript.BorderLineStyle.dot);
  right.setColor("#000000");
  right.setWeight(ExcelScript.BorderWeight.thin);

  const bottom = format.getRangeBorder(ExcelScript.BorderIndex.edgeBottom);
  bottom.setStyle(ExcelScript.BorderLineStyle.dashDotDot);
  bottom.setColor("#000000");
  bottom.setWeight(ExcelScript.BorderWeight.thin);

  const left = format.getRangeBorder(ExcelScript.BorderIndex.edgeLeft);
  left.setStyle(ExcelScript.BorderLineStyle.double);
  left.setColor("#000000");
}

私がExcel for the webで試したところ、二重線を指定したあとに setWeight() で細線(thin)や中線(medium)を指定すると、普通の1本線に変わりました。太線(thick)なら二重線のままです。そのため、左の二重線には太さを指定していません。

太さを変える

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  setBorderWeight(format, ExcelScript.BorderIndex.edgeTop, ExcelScript.BorderWeight.hairline);
  setBorderWeight(format, ExcelScript.BorderIndex.edgeRight, ExcelScript.BorderWeight.thin);
  setBorderWeight(format, ExcelScript.BorderIndex.edgeBottom, ExcelScript.BorderWeight.medium);
  setBorderWeight(format, ExcelScript.BorderIndex.edgeLeft, ExcelScript.BorderWeight.thick);
}

function setBorderWeight(
  format: ExcelScript.RangeFormat,
  index: ExcelScript.BorderIndex,
  weight: ExcelScript.BorderWeight
) {
  const border = format.getRangeBorder(index);
  border.setStyle(ExcelScript.BorderLineStyle.continuous);
  border.setColor("#000000");
  border.setWeight(weight);
}

線の場所と太さを1組ずつオブジェクトにして配列にまとめ、forEach の中で item.index のように取り出す書き方は、Officeスクリプトでは「Aliasing or assignment of Office Scripts APIs is not allowed.」というエラーで止まります。そのため、線の場所と太さを関数に直接渡しています。

Office Scriptsで罫線の太さを4種類に変えた結果
同じ実線でも、太さを変えるだけで見出しや合計行の重要度を出せます。

色を変える

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const range = sheet.getRange("B2:D4");
  const format = range.getFormat();

  setBorderColor(format, ExcelScript.BorderIndex.edgeTop, "#0000FF");
  setBorderColor(format, ExcelScript.BorderIndex.edgeRight, "#00AA66");
  setBorderColor(format, ExcelScript.BorderIndex.edgeBottom, "#FF0000");
  setBorderColor(format, ExcelScript.BorderIndex.edgeLeft, "#FFA500");
}

function setBorderColor(
  format: ExcelScript.RangeFormat,
  index: ExcelScript.BorderIndex,
  color: string
) {
  const border = format.getRangeBorder(index);
  border.setStyle(ExcelScript.BorderLineStyle.continuous);
  border.setColor(color);
  border.setWeight(ExcelScript.BorderWeight.thin);
}
Office Scriptsで罫線の色を変更した結果
色分けは便利ですが、実務帳票では見づらくならないように使う場所を絞ります。

見出し行と合計行を強調する

実務では、表全体を薄い罫線で整えたうえで、見出し行と合計行の線だけ目立たせると読みやすくなります。毎月の集計表や請求一覧の仕上げに使いやすいパターンです。

function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getWorksheet("Sheet1");
  const tableRange = sheet.getRange("A1:F12");
  const headerRange = sheet.getRange("A1:F1");
  const totalRange = sheet.getRange("A12:F12");

  setGridBorders(tableRange, "#999999", ExcelScript.BorderWeight.thin);

  const headerBottom = headerRange.getFormat()
    .getRangeBorder(ExcelScript.BorderIndex.edgeBottom);
  headerBottom.setStyle(ExcelScript.BorderLineStyle.continuous);
  headerBottom.setColor("#00796B");
  headerBottom.setWeight(ExcelScript.BorderWeight.medium);

  const totalTop = totalRange.getFormat()
    .getRangeBorder(ExcelScript.BorderIndex.edgeTop);
  totalTop.setStyle(ExcelScript.BorderLineStyle.double);
  totalTop.setColor("#00796B");
  totalTop.setWeight(ExcelScript.BorderWeight.thick);
}

function setGridBorders(
  range: ExcelScript.Range,
  color: string,
  weight: ExcelScript.BorderWeight
) {
  const format = range.getFormat();
  [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight,
    ExcelScript.BorderIndex.insideHorizontal,
    ExcelScript.BorderIndex.insideVertical
  ].forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor(color);
    border.setWeight(weight);
  });
}

Power Automateで帳票の仕上げに使う

Office Scriptsは、Excel上で手動実行するだけでなく、Power AutomateからOffice Scriptsを実行する公式機能 と組み合わせられます。Forms回答をExcelへ追加したあと、最後に罫線を整えるような使い方ができます。

スクロールできます
自動化の流れ罫線スクリプトの役割注意点
Forms回答をExcelに保存する追加された一覧表の外枠・内側罫線を整える行追加後の対象範囲を明確にする
SharePoint上の帳票を更新する見出し行、合計行、外枠を整えるファイル場所とスクリプトの保存場所を確認する
Power Appsから申請データを登録するPower Automate経由でExcel帳票を罫線付きにするPower Appsから直接ではなく、フロー経由で考える
function main(
  workbook: ExcelScript.Workbook,
  sheetName: string = "Sheet1",
  address: string = "A1:F12"
) {
  const sheet = workbook.getWorksheet(sheetName);
  const range = sheet.getRange(address);
  const format = range.getFormat();

  [
    ExcelScript.BorderIndex.edgeTop,
    ExcelScript.BorderIndex.edgeBottom,
    ExcelScript.BorderIndex.edgeLeft,
    ExcelScript.BorderIndex.edgeRight,
    ExcelScript.BorderIndex.insideHorizontal,
    ExcelScript.BorderIndex.insideVertical
  ].forEach((borderIndex) => {
    const border = format.getRangeBorder(borderIndex);
    border.setStyle(ExcelScript.BorderLineStyle.continuous);
    border.setColor("#555555");
    border.setWeight(ExcelScript.BorderWeight.thin);
  });
}

Power Automateから呼び出す場合は、sheetName や address を引数にしておくと、対象シートや範囲をフロー側から変えやすくなります。getActiveWorksheet() に頼ると、想定外のシートを触るリスクがあるため、実務ではシート名を明示する方が安全です。

Power Automate連携時の注意

Power Automate上では、手元のExcel画面で実行する場合と実行環境が異なります。利用できるライセンス、Excelファイルの保存場所、管理者設定、コネクタの権限によって表示や実行可否が変わる場合があるため、公開前・運用前に自分のMicrosoft 365環境で確認してください。

よくあるミス・FAQ・次に読む記事

最後に、Officeスクリプトで罫線を操作するときにつまずきやすい点をまとめます。エラーが出たときは、まずシート名、セル範囲、罫線位置、線種の4つを確認してください。

よくあるミスと対策

スクロールできます
症状原因対策
スクリプトがエラーになるシート名や範囲指定が実際のブックと合っていないSheet1 と A1:D5 を自分のブックに合わせる
外枠は付くが内側の線がないinsideHorizontal と insideVertical を指定していない内側罫線の2指定を追加する
罫線を消したつもりが残る削除対象に対角線や内側線が含まれていない削除したい BorderIndex を配列にまとめて none を設定する
二重線が1本線になる二重線を指定したあとに setWeight() で細線(thin)や中線(medium)を指定している二重線には setWeight() を書かない(書くなら thick)
大量範囲で動作が重い必要以上に広いセル範囲へ書式を設定している対象範囲を絞り、同じ設定は配列とループでまとめる
Power Automateで想定と違うシートに反映されるアクティブシート依存のコードになっているgetWorksheet("シート名") で対象を明示する

FAQ

Office Scriptsで罫線を削除するには?

setStyle(ExcelScript.BorderLineStyle.none) を使います。上下左右だけでなく、内側罫線や対角線も削除したい場合は、対象の BorderIndex を配列にまとめて forEach で処理すると楽です。

罫線だけ消す場合と書式を全部消す場合は、どちらを使えばいいですか?

罫線だけ消したいなら BorderLineStyle.none、背景色やフォントなども含めて書式を初期化したいなら range.clear(ExcelScript.ClearApplyTo.formats) を使います。値まで消したいわけではない場合、ClearApplyTo.formats は「値を残して見た目だけ消す」使い方になります。

外枠と内側の罫線を同時に引けますか?

できます。外枠4つに加えて、insideHorizontal と insideVertical を指定します。表全体を格子状にしたい場合は、この6つをまとめて処理するのが基本です。

VBAのBordersとOffice ScriptsのgetRangeBorderは同じ考え方ですか?

目的は似ていますが、書き方は違います。VBAでは Borders に対して位置や線種を設定することが多い一方、Office Scriptsでは range.getFormat().getRangeBorder(ExcelScript.BorderIndex.edgeTop) のように、書式オブジェクトから罫線を取り出して設定します。

Power AppsからOffice Scriptsの罫線設定を使えますか?

Power AppsだけでOffice Scriptを直接実行するというより、Power AppsからPower Automateフローを起動し、そのフロー内でExcelのOffice Scriptを実行する流れになります。申請データをExcel帳票に出力し、最後に罫線を整えるような使い方に向いています。

大量のセルに罫線を引くときの注意点はありますか?

必要以上に広い範囲へ書式設定すると処理が重くなることがあります。対象範囲を絞る、同じ設定を配列にまとめる、処理を細かく分けすぎない、Power Automate連携では対象シートと範囲を明示する、という点を意識してください。

  • Officeスクリプトで罫線を引く基本は getFormat().getRangeBorder() です。
  • 罫線の場所は BorderIndex、線種は BorderLineStyle、太さは BorderWeight で指定します。
  • 色は setColor("#000000") のようにHTMLカラーコードで指定できます。
  • 罫線を削除する場合は BorderLineStyle.none を使います。
  • 実務では、外枠、内側罫線、見出し行の太線、合計行の二重線、罫線削除を覚えると応用しやすくなります。
  • Power Automateと組み合わせると、Forms回答、SharePoint上の帳票、Power Appsからの申請データ出力後に、Excelの見た目を自動で整えられます。

Excelで工程表を作っている方は、エクセル工程表を自動作成する方法も参考にしてください。
工程表の記事では、日付に合わせてバーを自動で塗る方法を、関数とVBAで紹介しています。

次に読む記事

更新メモ: 本文の仕様・公式リンク確認日は2026年5月23日です。Microsoft 365の利用条件やPower Automate連携の表示は、契約プランや管理者設定によって変わる場合があります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次