Excel VBAで条件に応じて全シートを処理する方法

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
目次
Excel VBAで条件に応じて全シートを処理する方法
Excelを使っていると、特定の条件を満たすシートに対して処理を行いたい場合があります。VBA(Visual Basic for Applications)を利用すれば、効率的にこれが可能です。本記事では、特定の条件に基づいてすべてのシートを順番に処理する方法を解説します。
条件付きシート処理の必要性
特定のシート名や条件に応じて処理を行うことで、必要なデータだけを効率的に扱うことができます。例えば、シート名に「売上」が含まれるシートだけを処理する場合などです。
VBAコード
すべてのシートを順番に処理
まずは、シートのNameを順番に表示する方法を紹介します。
Sub MsgSheetName()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
MsgBox ws.Name
Next ws
End Sub
For Each 変数 In ThisWorkbook.worsheets でワークブックにあるシートをひとつひとつ変数に代入してくれます
条件を満たしたシートのみ処理をする
以下のVBAコードを新しいモジュールに追加します。ここでは、シート名に「売上」が含まれるシートに対して処理を行います。
Sub ProcessConditionalSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If InStr(ws.Name, "売上") > 0 Then ' 条件式
ws.Activate
ws.Range("A1").Value = "処理完了"
End If
Next ws
End Sub
InStr関数については、下記の記事で解説しています。
縁紡ぐ


Excel VBAのInStr関数を徹底解説!画像・コードあり | 縁紡ぐ
Excel VBAのInStr関数を徹底解説!画像・コードあり Excel VBAを使っていると、特定の文字列が別の文字列の中に含まれているかを確認したいことがあります。そんなときに役…
まとめ
本記事では、Excel VBAを使って特定の条件に基づいて全シートを処理する方法を解説しました。条件を設定することで、必要なシートだけを効率的に処理できることができるようになりますね。ぜひ、実際に試してみてください。
コメント