いつもお世話になっております。
連想配列の質問ですが、
下記のように書き出したいのですが、
おしえてくれませんでしょうか
ReDim Preserve Vz(1 To UBound(Vz), 1 To 2)
に格納したものを
Cells(i, "i") = Vz(iB, 1)
Cells(i, "J") = Vz(iB, 2)
ように書きだしたいのです。
おしえてくれませんでしょうか
Sub fa()
Dim Dic As Object
Dim Vz As Variant, Vk
Dim iA As Long, iB As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Range("B2").CurrentRegion
Vk = .Value
End With
For iA = UBound(Vk) To 3 Step -1
If (Vk(iA, 1)) <> "" Then _
Dic(Vk(iA, 1)) = iA
Next
With ActiveSheet
With .Range("H2", .Cells(Rows.Count, "H").End(xlUp))
Vz = .Value
ReDim Preserve Vz(1 To UBound(Vz), 1 To 2)
For iB = 2 To UBound(Vz)
iA = Dic(Vz(iB, 1))
If (iA = 0) Then
Vz(iB, 1) = ""
Else
Vz(iB, 1) = Vk(iA, 2)
Vz(iB, 2) = Vk(iA, 3)
End If
Cells(i, "i") = Vz(iB, 1)
Cells(i, "J") = Vz(iB, 2)
Next
End With
End With
End Sub
No.1ベストアンサー
- 回答日時:
連想配列ではなく2次元配列のように思いますけど、配列のインデックス№はシートの行番号とは一致しませんよ。
⇒1行目に項目行があってその項目名を取得するなら別ですけど。
UBound と共に LBound も知っておくと良いかも。
【VBA入門】UBound、LBound関数で配列の要素数を取得
https://www.sejuku.net/blog/29317
あとは配列変数:Vz は最後に Resize を用いて一括出力しないと使用している意味が薄まるかなと。
いつもお世話になっております
変更前
For iB =1 To UBound(Vz)
変更後
For iB = LBound(Vz) To UBound(Vz)
うまくいきました。
ありがとうございました。
ReDim Preserve Vz(1 To UBound(Vz), 1 To 2)
For iB = LBound(Vz) To UBound(Vz)
iA = Dic(Vz(iB, 1))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
【エクセル】改行無しテキスト...
-
全角と半角文字が混在している...
-
空白文字 \\f と\\v の違いに...
-
【Access2003】VBAでタブ区切り...
-
VBAでCSVファイルを途中行まで...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルの特定行を書...
-
awkスクリプトでダブルクォーテ...
-
where can I buy snowbord in t...
-
エクセルVBA コードが同じでも...
-
VBAで巨大なファイルの途中から...
-
ディレクトリ名を取得したい
-
dos変数の%~dp0は powershellで...
-
sprintfについて
-
perl ファイルが開かない
-
C++でのテキストファイル読み込...
-
ListBoxのデータを高速でファイ...
-
ReadLineでの読み出し行を指定する
-
readdir()で得られるファイル・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
タブの色を変更する方法
-
C言語で特定の行を抽出する方法...
-
VBAのFileFormatで悩んでいるこ...
-
空白文字 \\f と\\v の違いに...
-
【Access2003】VBAでタブ区切り...
-
【エクセル】改行無しテキスト...
-
VBAでタブ区切りテキストの保存...
-
VB6でのデータの編集(ファイル...
-
全角と半角文字が混在している...
-
Edge スクレイピング
-
EXELよりVBAを使ってTXTを書き...
-
連想配列について
-
CSVファイルのフォーマット
-
ファイルへデータ登録2
-
Excelのマクロで改行を含んだテ...
-
C++でファイルから複数行のデー...
-
Flashで実現可能なのか知りたい
-
htaccessで特定のディレクトリ...
-
perlによるデータのくっつけ方...
おすすめ情報
いつもお世話になっております。
For i = LBound(Vz) To UBound(Vz)
Cells(i + 1, "i") = Vz(i, 1)
Cells(i + 1, "J") = Vz(i, 2)
Next
でやりましたが、
4だけ 4と表示されます。
4 4
5 沼田 梨恵子 女
6 本多 八洲子 女
7 石井 芙美子 女
8 亀井 水泉 男
9 白井 真樹 女
10 柏木 悠里 女
11 村松 利人 男
Vz は最後に Resize を用いて一括出力しないと使用している意味が薄まるかなと。
なんとなくですが、
ReDim Preserve Vz(1 To UBound(Vz), 1 To 2)
格納して 一気に吐き出す 速さがおちるということですか