エクセルマクロVBA

すべてのシートやブックに同じ処理を行う(For Each…Nextステートメント)

投稿日:

すべてのワークシートやすべてのブックなどに、まとめて同じ処理を行いたい場合には

For Each…Next文を使用します。

 

[書式]

For Each オブジェクト変数 In コレクション     

    処理

Next

 

In コレクションの部分で処理の対象となるシートやブックの集まりである

シートコレクションやブックコレクションを指定します。

 

そしてそれらのコレクションの中の個々のシートやブックがオブジェクト変数に

一つずつ代入されて順番に処理が行われます。

 

 

[] 

For Each ワークシート In Worksheets

 


ワークシート.Tab.ColorIndex = 20

 

Next

 

 

For Each ワークブック In Workbooks

 


ワークブック.Save

Next

 

[サンプルC110_1]

Sub C110_1()

Dim ワークシート As Worksheet        

For Each ワークシート In Worksheets    


ワークシート.Tab.ColorIndex = 20

Next

End Sub

 

Dim ワークシート As Worksheet        

Worksheetオブジェクト型の「ワークシート」という名前の変数を宣言しています。

 

For Each ワークシート In Worksheets    


ワークシート.Tab.ColorIndex = 20

Next

コレクションにWorksheetsコレクション、変数に①で宣言した「ワークシート」を指定して「For Each Next文」を実行し、すべてのワークシートの見出しに色を設定しています。


 

 

[サンプルC110_2]

Sub C110_2()

Dim ワークブック As Workbook

For Each ワークブック In Workbooks


ワークブック.Save

Next

End Sub

 

Workbooksコレクションを指定し、

For Each Next 文ですべてのワークブックを保存しています。




動画で楽にパソコンが身につく方法はこちら>>

-エクセルマクロVBA

Copyright© エクセルVBA使い方入門 , 2020 All Rights Reserved Powered by STINGER.