![見出し画像](https://assets.st-note.com/production/uploads/images/97506884/rectangle_large_type_2_0285e4b47592581daa04aa10c82ff28b.png?width=1200)
【Officeスクリプト】複数のシートで同じ処理をする
こんにちは。aliceです。
今日はゆるめにさくっと書いてみました。
今回はOfficeスクリプトで複数のシートで同じ処理をします。
それぞれのシートのA1セルにシート名を入力します。
別にシート名でなくても良いんですけどね。なんとなくシート名にしてみました。
複数のシートで同じ処理をする
まず、シートを3つ用意しました。
いつものさつまいもちゃんシリーズです🍠
![](https://assets.st-note.com/img/1675774750931-pm5ODIKmGG.png?width=1200)
この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セルにシート名が入力されました。
![](https://assets.st-note.com/img/1675775103756-7JMNJk6uPF.png?width=1200)
特定のシートを除いて複数のシートで同じ処理をする①
次は特定のシートを除いた複数のシートで同じ処理をしていきます。
集計用のシートなど、このシートは同じ処理をしなくていいんだよーということありますよね。そんなイメージです。
先ほどのブックにさつまいもシートを追加しました。
![](https://assets.st-note.com/img/1675775217055-nMVVgB3QNY.png?width=1200)
さつまいもシートを除いたすべてのシートで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セルは空欄のままです。
![](https://assets.st-note.com/img/1675775380063-SW0yGWGRFX.png?width=1200)
べにはるかシートのA1セルにはシート名が入力されました。
![](https://assets.st-note.com/img/1675775427692-6a1dNnkT5s.png?width=1200)
特定のシートを除いて複数のシートで同じ処理をする②
最後は処理をしないシートが複数あったときのパターンです。
先ほどのブックにさらにじゃがいもシートを追加します。
![](https://assets.st-note.com/img/1675808059735-M1dM8TOAEm.png?width=1200)
今回はじゃがいもシートとさつまいもシートを除いて処理をしていきます。
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セルは空欄のままです。
![](https://assets.st-note.com/img/1675775659025-bDYOlkf4IC.png?width=1200)
シルクスイートシートのA1セルにはシート名が入りました。
![](https://assets.st-note.com/img/1675775633424-2u8gFhTQj8.png?width=1200)
getWorksheets()メソッドでワークシートのコレクションを取得して、for…of文で処理するといい感じになりますね。
お疲れさまでした🎉
お茶でもしましょう🍵
![](https://assets.st-note.com/img/1675776520215-xSNwLSBFYV.png)
Officeスクリプト記事まとめ📝
『Officeスクリプト入門講座』を書きました📝
この記事が気に入ったらサポートをしてみませんか?