見出し画像

【Officeスクリプト】複数のシートで同じ処理をする

こんにちは。aliceです。
今日はゆるめにさくっと書いてみました。

今回はOfficeスクリプトで複数のシートで同じ処理をします。
それぞれのシートのA1セルにシート名を入力します。
別にシート名でなくても良いんですけどね。なんとなくシート名にしてみました。



複数のシートで同じ処理をする

まず、シートを3つ用意しました。
いつものさつまいもちゃんシリーズです🍠


この3つのシートすべてにA1セルにシート名を入力します。

function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  for (let sheet of sheets) {
    sheet.getRange("A1").setValue(sheet.getName());
  }
}


getWorksheets()メソッドを使って、すべてのワークシートのコレクション取得します。

そのあとはfor…of文を使って一つずつ処理をしていきます。


あんのういもシートのA1セルにシート名が入力されました。


特定のシートを除いて複数のシートで同じ処理をする①

次は特定のシートを除いた複数のシートで同じ処理をしていきます。

集計用のシートなど、このシートは同じ処理をしなくていいんだよーということありますよね。そんなイメージです。

先ほどのブックにさつまいもシートを追加しました。

さつまいもシートを除いたすべてのシートでA1セルにシート名を入力します。

function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  for (let sheet of sheets) {
    if (sheet.getName() !== "さつまいも") {
      sheet.getRange("A1").setValue(sheet.getName());
    }
  }
}


比較演算子(!==)を使ってシート名が「さつまいも」でないときは処理をします。

さつまいもシートのA1セルは空欄のままです。

べにはるかシートのA1セルにはシート名が入力されました。


特定のシートを除いて複数のシートで同じ処理をする②

最後は処理をしないシートが複数あったときのパターンです。
先ほどのブックにさらにじゃがいもシートを追加します。


今回はじゃがいもシートとさつまいもシートを除いて処理をしていきます。

function main(workbook: ExcelScript.Workbook) {
  const sheets = workbook.getWorksheets();
  const sheetNameArray = ["じゃがいも", "さつまいも"];
  for (let sheet of sheets) {
    if (sheetNameArray.includes(sheet.getName())) continue
      sheet.getRange("A1").setValue(sheet.getName());
  }
}

まず、処理をしないシートを配列sheetNameArrayに入れます。

そして、includes()メソッドを使ってシート名がsheetNameArrayの要素と一致したら(Trueを返したら)if文をスキップして、次のシートを判定します。
一致しなかったら、A1セルにシート名を入力する処理を行います。


🥔includes()メソッド

🥔continue


じゃがいもシートのA1セルは空欄のままです。

シルクスイートシートのA1セルにはシート名が入りました。


getWorksheets()メソッドでワークシートのコレクションを取得して、for…of文で処理するといい感じになりますね。

お疲れさまでした🎉
お茶でもしましょう🍵


Officeスクリプト記事まとめ📝


『Officeスクリプト入門講座』を書きました📝


この記事が気に入ったらサポートをしてみませんか?