- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA のFor Each ・・・ Next について)
Excel VBAのFor Each...Nextの配列について
このQ&Aのポイント
- Excel VBAのFor Each...Nextを使用して配列に数字を入れる際、セルの値には反映されず、すべて0になってしまいます。
- 一方、range関数を使用すると指定したセル範囲に数字が入ります。
- なお、x.valueの.valueをつけないとセルに反映されないことも注意が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
前者は、 > x.Value = 100 ではなく、 > x = 100 ですよね? これは、 ------------------------------- For I=LBound(m) To UBound(m) x = m(I) x = 100 Next ------------------------------- と同じ様な動作です。 変数xを上書きしているだけで、mには影響がありません。 後者は、同様に、 -------------------------------- For I=1 To 10 Set x = range("a1:a10").Cells(I,1) x.Value = 100 Next -------------------------------- と同じ様な動作です。普通に変更されます。
お礼
for each ・・・ in ~ ~はコレクション(オブジェクト)じゃ無くてはだめだったんですね。 Setステートメントで理解できました。 ありがとうございます。