VBAを練習中で、現在、配列について練習しております。
”要素”シートのセル範囲を配列に格納し、”出力”シートの特定セルに表示させたいです。
例示してある”要素”シートは数行ですが、この行が数百行有るような場合を想定しています。
変数(i)も変化させ、要素シートの中から特定(i)の行を格納し、出力に表示させたいです。
住所録(データシートが要素で、個々の情報を出力に呼び出す)みたいな感じを想定しています。
自分なりに調べながら書いたコード、シート情報を記載します。
よろしくお願いいたします。
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim youso As Range
Dim i As Long
Set sh1 = Worksheets("要素")
Set sh2 = Worksheets("出力")
i = 2 '必要に応じてiの値を変える予定あり
Set youso = sh1.Range(Cells(i, 1), Cells(i, 5))
'↑ここでエラーが出ます。
With sh2
.Range("C2") = youso(1) '要素1
.Range("F2") = youso(2) '要素2
.Range("D4") = youso(3) '要素3
.Range("D6") = youso(4) '要素4
.Range("G5") = youso(5) '要素5
End With
End Sub
No.3ベストアンサー
- 回答日時:
こんにちは。
そのコードですと、配列になっていないのです。
配列を、簡単な方式で書いてみました。すこし複雑になってしまいますね。
Sub 配列方式()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim youso As Range
Dim Ary_youso(4) '配列変数
Dim Rng As Range
Dim i As Long, j As Long, c As Range
Set Sh1 = Worksheets("要素")
Set Sh2 = Worksheets("出力")
i = 2 '行
With Sh1
Set youso = .Range(.Cells(i, 1), .Cells(i, 5))
Next j
For j = 0 To 4
Ary_youso(j) = youso(j + 1).Value '配列変数に入れる
End With
j = 0
With Sh2
Set Rng = .Range("C2,F2,D4,D6,G5")
For Each c In Rng
c.Value = Ary_youso(j) '配列変数からの吐き出し
j = j + 1
Next c
End With
End Sub
ありがとうございます。
どうも僕は配列のなんたるか(?)がそもそも理解できていなようです。
頂いたコード、今の僕には難しいですが、ネット上の解説などとともに読み解き、
自分で理解できるように努力してみます!
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlで2次元配列をサブルーチ...
-
Excel VBA ユーザーフォームの...
-
VBAのautofilter、criteriaの配...
-
マクロ Publicでの配列定義
-
二次元配列のインデックスについて
-
リストボックスに縦スクロール...
-
配列を初期化する時ってどうす...
-
Excel(VBA)で配列の要素数を...
-
perlで配列の要素が空なのを知...
-
Dim flag(4) as boolean で配列...
-
ファイル名に日付・時刻を付与...
-
エクセルVBAでTransposeの不思議
-
VBA 多次元配列を用いてグルー...
-
perl 配列の要素数について
-
重複しない乱数発生
-
二次元配列における要素数のは...
-
fortran
-
perl このテキストファイルを簡...
-
jcode->jfold で禁則処理
-
可変長配列を、動的確保した固...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二次元配列のインデックスについて
-
VBAのautofilter、criteriaの配...
-
Excel VBA ユーザーフォームの...
-
二次元配列における要素数のは...
-
マクロ Publicでの配列定義
-
Strawberry Perl for Windows ...
-
リストボックスに縦スクロール...
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
perlで2次元配列をサブルーチ...
-
perlで配列の要素が空なのを知...
-
perl 配列の要素数について
-
組み合わせについての質問です...
-
隣同士の数字を足し合わせる
-
複数の配列の全ての組み合わせ...
-
perl 初等プログラミングについて
-
jcode->jfold で禁則処理
-
一致する要素が格納されている...
-
チェックボックスのperlでの値...
おすすめ情報