オブジェクト型の変数は、例えば、worksheetを変数に使う場合、 Dim ws as Worksheet Set ws = worksheets(“Sheet1”) として定義しています。 しかしながら、 For each構文では Dim ws as Worksheet For Each ws In Worksheets のようなプログラムになっています。 For each構文を使う場合、Set ws = worksheets(“×××”)のように指定しなくてもよろしいのでしょうか。 For Eachを使う場合、特定のworsheetに限定する場合は、Set構文でひもづけしなければならないと考えてよろしいのでしょうか。
2020/05/15 01:09
小川慶一さんのコメント
(コメントID: 6580)
受講生 さん:
For Each構文では、ループの都度、個別のオブジェクトへの参照は自動的に変数に設定されます。
For Next構文も、以下のように、ループの都度、数値が変数に自動的に割り当てられますね。 それと同じです。
For i = 2 To 11
Range("A" & i).Value = i
Range("B" & i).Value = "所属部署"
Range("C" & i).Value = "氏名"
Next
受講生さんの投稿
(投稿ID: 4720)
Dim ws as Worksheet
Set ws = worksheets(“Sheet1”)
として定義しています。
しかしながら、
For each構文では
Dim ws as Worksheet
For Each ws In Worksheets
のようなプログラムになっています。
For each構文を使う場合、Set ws = worksheets(“×××”)のように指定しなくてもよろしいのでしょうか。
For Eachを使う場合、特定のworsheetに限定する場合は、Set構文でひもづけしなければならないと考えてよろしいのでしょうか。
小川慶一さんのコメント
(コメントID: 6580)
For Each構文では、ループの都度、個別のオブジェクトへの参照は自動的に変数に設定されます。
For Next構文も、以下のように、ループの都度、数値が変数に自動的に割り当てられますね。
それと同じです。