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を使って特定の条件に基づいて全シートを処理する方法を解説しました。条件を設定することで、必要なシートだけを効率的に処理できることができるようになりますね。ぜひ、実際に試してみてください。

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

コメント

コメントする

目次