【VBA】シートの数だけ繰り返し処理を行う【ループ】

シートの数だけ繰り返し処理を行う方法は
複数あります!

ここでは私が
 ・1番シンプルと考える方法
を記載します!

PR

前提

以下の3シートを持つExcelファイルがあるとします。
・概要
・設計
・備考

3シートある
3シートある
PR

VBAコード

ここでは例として、
 ・シートの数だけ繰り返し処理を行い、
 ・シート名をイミディエイトウィンドウへ出力
します。

Option Explicit

Sub sample()
    
    Dim ws As Worksheet
   
    'シートの数だけ繰り返し
    For Each ws In ThisWorkbook.Worksheets
        'イミディエイトウィンドウへ出力
        Debug.Print ws.Name
    Next
    
End Sub

「Worksheetsオブジェクト」が持っている「Worksheetオブジェクト」の数だけ、繰り返し処理をします。
※「Worksheetsオブジェクト」は「Worksheetオブジェクトコレクションと言ったりします。

ここでは繰り返し処理として「For Each」を使用します。
※「For文」より「For Each」の方がシンプルと考えます。

PR

実行結果

シートの数だけ繰り返し処理ができました。
※シート名をイミディエイトウィンドウへ出力できました。

実行結果
実行結果
PR

参考①

コレクション」とは「複数のデータを一つに纏めたもの」です。
「Worksheetsオブジェクト」は複数の「Worksheetオブジェクト」を纏めたものです。

PR

参考②

シートの数だけ繰り返し処理を行うVBAコードの使用例です。



PR

参考③

指定した範囲のセルの数だけ、繰り返し処理を行うこともできます。

詳細は以下の記事をご確認ください。

PR

参考④

繰り返し処理について、以下もおすすめです。

PR

参考⑤

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●Worksheetsオブジェクト
「Worksheetオブジェクト」のコレクションです。


●Worksheetオブジェクト
Excelファイルのシートです。


●イミディエイトウィンドウへ出力


タイトルとURLをコピーしました