No.2ベストアンサー
- 回答日時:
こんばんは、横から失礼します。
val = Range("F3").CurrentRegion.Value
として配列の大きさを設定(確定)しているので、ご質問例のコードで
ReDimの必要があるようには思えません。
redimpreserveを使うケースの多くは、条件により配列操作を必要とする場合ですね
ちなみに
Dim val As Variant
val = Range("F3").CurrentRegion.Value
Debug.Print UBound(val, 1); "<-R:C->"; UBound(val, 2)
次元方向の大きさも分かると思います。
配列範囲をListBox1に登録するのであれば、
Dim i As Long, j As Integer
With ListBox1
.ColumnCount = UBound(val, 2)
For i = LBound(val, 1) To UBound(val, 1)
.AddItem ""
For j = 1 To UBound(val, 2)
.List(.ListCount - 1, j - 1) = val(i, j)
Next
Next
End With
この回答へのお礼
お礼日時:2021/09/07 08:14
いつもお世話になっております。
配列の大きさを設定(確定)している
なるほど です。
ありがとうございます。
こういう書き方があるのですね
.ColumnCount = UBound(val, 2)
ありがとうございました。
No.1
- 回答日時:
>val = Range("F3").CurrentRegion.Value
最初のコードで使用するセル範囲と後のコードで使用するであろうセル範囲が違いますけど、どちらが正解なのか?
CurrentRegion は確かによく使われますがセル範囲の中間を基準として指定したつもりでも上や左もセルに値があれば有効になってしまい、
抜き出そうとする列や行に影響を与えると思います。
なのでコードだけで判断は出来ませんけど、
>できれば下記のコードにredimかredimpreserve利用したものでお願い申し上げます
何の為に必要だと思うのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) リストポックスへの抽出方法 1 2022/08/10 17:58
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Listbox配列
-
【マクロ】顧客番号にて一致さ...
-
Excelで同じシートのコピーを一...
-
特定のシートの削除を禁止した...
-
EXCELで1ヶ月分の連続した日付...
-
オートフィルタの青い三角が見...
-
シート1に列挙したNGワードを...
-
EXCELで同一フォーマットのシー...
-
条件に応じて特定の行を非表示...
-
前の(左隣の)シートを連続参...
-
【エクセルVBA】一部シートのみ...
-
エクセルVBAでパスの¥マークに...
-
VBAでシートコピー後、シート名...
-
エクセルで前シートを参照して...
-
Excelが開かない!印刷プレビュ...
-
【Excel マクロ】 同一book内で...
-
VBA セルの値と同じ名前のシー...
-
Excel、同じフォルダ内のExcel...
-
エクセルで学年会計簿を作りたい。
-
コード追加編集方法は?36回の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excel2007 VBA countif関数
-
『あまり』を均等に割り当てる方法
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
条件に応じて特定の行を非表示...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Excelでセル内の数式は残し値だ...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
おすすめ情報
できれば下記のコードにredimかredimpreserve利用したもの
でお願い申し上げます
Dim val As Variant
val = Range("F3").CurrentRegion.Value
With ListBox1
.ColumnCount = 2
For i = LBound(val) To UBound(val)
.AddItem ""
.List(.ListCount - 1, 0) = val(i, 1)
.List(.ListCount - 1, 1) = val(i, 2)
Next
End With