
prefShのB列の値をKeyとして、A列・E列・M列の値をItemに格納し、それぞれ workShのA列・U列・C列に出力したいのですが、その場合はどのように書き換えたらよいか、ご教示いただけませんでしょうか。(prefShでは2行目から最終行まで値を取得し、workShでは3行目から値を入れたいです)
Findメソッドでエラーが起きたので、Dictionaryを初めて使い、現在はA列→A列のみ成功している状態です。↓ お知恵を貸していただけますよう、お願いいたします。
-------------------
Dim myDic As New Dictionary
Dim i As Long
With prefSh
For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
If Not myDic.Exists(.Cells(i, 2).Value) Then
myDic.Add .Cells(i, 2).Value, .Cells(i, 1).Value
End If
Next i
End With
Dim vKey As Variant
With workSh
i = 1
For Each vKey In myDic
i = i + 1
.Cells(i + 1, 2).Value = vKey
.Cells(i + 1, 1).Value = myDic.Item(vKey)
Next
End With
Set myDic = Nothing
No.1ベストアンサー
- 回答日時:
初級者ですのでお手柔らかにお願いします。
Dim myDic As New Dictionary
Dim i As Long
With prefSh
For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
If Not myDic.Exists(.Cells(i, 2).Value) Then
myDic.Add .Cells(i, 2).Value, Array(.Cells(i, "A").Value , .Cells(i, "E").Value , .Cells(i, "M").Value)
End If
Next i
End With
Dim vKey As Variant
With workSh
i = 3
For Each vKey In myDic
.Cells(i, 2).Value = vKey
.Cells(i, "A").Value = myDic(vKey)(0)
.Cells(i, "U").Value = myDic(vKey)(1)
.Cells(i, "C").Value = myDic(vKey)(2)
i = i + 1
Next
End With
Set myDic = Nothing
ご丁寧にありがとうございました。
Dim i As Longの部分から全て使わせていただき、= myDic.Item(vKey)(0)に変更しなくても問題なくプログラムを実行することができました。
大変勉強にもなり、ありがとうございました。
No.2
- 回答日時:
No.1です。
参照設定されてたのですね。
普段しないので見落としました。
もしダメな時は
= myDic.Item(vKey)(0)
などに変更してみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA Scripting.Dictionary 連想配列 複数参照する方法
Excel(エクセル)
-
Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです
Visual Basic(VBA)
-
UserForm1.Showでエラーになります。
工学
-
-
4
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
5
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
-
6
動的配列が存在(要素が有る)か否かを判定できますか?
Visual Basic(VBA)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
9
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
10
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
11
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
12
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
13
VBAで重複データを合算したい
Excel(エクセル)
-
14
VBA public変数はどのようなことをしたら解放されますか?
Visual Basic(VBA)
-
15
VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい
Visual Basic(VBA)
-
16
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
17
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
18
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
19
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
20
配列の値を置換するにはどうすればいいでしょう?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
血小板増加について
-
検便についてです。 便は取れた...
-
首吊りどこ締めるの
-
Excel 数値の前の「 ' 」を一括...
-
レインボーシックスシージをし...
-
エクセルで空白セルを含む列の...
-
腕を見たら黄色くなってる部分...
-
VLOOKUP関数を使用時、検索する...
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
病院側から早く来てくださいと...
-
勃起する時って痛いんですか? ...
-
エクセルのラベルの値(文字列...
-
彼女のことが好きすぎて彼女の...
-
Excel条件付書式(残業45時間以...
-
リンク先のファイルを開かなく...
-
エクセルで数式の答えを数値と...
-
MIN関数で空白セルを無視したい...
-
値が入っている一番右のセル位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報