配列に数字(特段数字でなくても)入れたいのですが、以下のように書きました。
Sub test()
Dim x As Variant
Dim m(1 To 10) As Integer
For Each x In m
x.Value = 100
Next
Stop
End Sub
Stopでとめてmを確認するとすべて0です。どうしてなのでしょうか。
配列ではなく
Sub test()
Dim x As Variant
For Each x In range("a1:a10")
x.Value = 100
Next
End Sub
とするとA1:A10には100が入ります。
この差がいまいちわからなくて、
もちろんFor ・・・ Nextで簡単に入れられるのは承知しています。
補足ですが
また最初はx.valueの.valueをつけていなかったのでセルにも反映されませんでしたが.valueをつけると入りました。
No.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ステートメントで理解できました。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
『あまり』を均等に割り当てる方法
-
excel2007 VBA countif関数
-
スプレッドシートの関数VLOOKUP...
-
Excelで同じシートのコピーを一...
-
条件に応じて特定の行を非表示...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
前の(左隣の)シートを連続参...
-
エクセルの複数シートの保護を...
-
シートの保護のあとセルの列、...
-
Excel2007で、太字にした行のみ...
-
VBA セルの値と同じ名前のシー...
-
別シート参照のセルをシート毎...
-
エクセルVBAでパスの¥マークに...
-
エクセルで前のシートを連続参...
-
Excelでセル内の数式は残し値だ...
-
EXCELで1ヶ月分の連続した日付...
-
EXCELで同一フォーマットのシー...
-
エクセルでファイル保存時に複...
-
エクセル VBA 小数点を含む数字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『あまり』を均等に割り当てる方法
-
excel2007 VBA countif関数
-
指定した列をクリア 配列VBA
-
Excel VBA のFor Each ・・・...
-
Excelで同じシートのコピーを一...
-
条件に応じて特定の行を非表示...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
前の(左隣の)シートを連続参...
-
EXCELで同一フォーマットのシー...
-
VBAでシートコピー後、シート名...
-
Excel 連番を入力する方法
-
エクセル 計算式も入っていない...
おすすめ情報