【VBAスタンダードに挑戦!】
本日の5分勉強の内容
********************************************************
For Each...Nextステートメント
・グループのメンバーをひとつずつ、順番に調べる(操作する)
・グループは以下の3つが指定できる
コレクション(同じ種類のもの(ブック、シート etc.))
複数セル
配列
・記述方法
For Each 変数 In グループ名
変数を使った処理
Next 変数
コレクションの操作
・同じ種類のオブジェクト(シートなど)の中に、
条件を満たすものが存在するか調べる
複数あるシートの中から、「vba」というシート名の
シートが存在するか調べる
Sub ふぉーいーち()
Dim WS As Worksheet
For Each WS In Worksheets 'Worksheetsがグループ名
If WS.Name = "vba" Then '「vba」というシート名があったら・・・
Sheets(WS.Name).Activate 'シートvba を表示させて、
MsgBox "あるよ" 'メッセージボックスでお知らせ
End If
Next WS
End Sub
※Each・・・それぞれ、ひとつの
Activate・・・活性化する、選択された状態にする
********************************************************
For Each は見たことはあったものの、実際に使用したことがないので、
すぐには理解できませんでした。
特に、「コレクション」とはなんじゃ???
ネットで調べてみたところ、同じ種類の集まり、
または、自分で作成した集まりのようです。
とりあえずは、ブックとシートのみ該当すると覚えていても
問題ない気がします。
シートを操作する際は、シートの枚数を数えて、
その数を For Next の上限値に設定しています。
For Each を使用するメリットって何だろう?
シート枚数を数える処理がない分、記述が少し楽になるだけ?
どんな場面で使えるのかな?
※Collection・・・集めること、収集
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/