Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5059 / 76735 ←次へ | 前へ→

【77290】Re:二つの値を格納したい
発言  kanabun  - 15/7/1(水) 13:12 -

引用なし
パスワード
   ▼imori さん:

>以下のようにB列の値とC列の値を
>[あ、テスト1]のように一緒にもちたいです。
>また値を格納した後、それを取り出したいです。

何番目のデータかを指定して 2つの値を組で得たいときは、配列が便利です。

たとえば、以下では B:C列をひとつの配列に入れていますので、
その何行目何列目を指定すれば 値が得られます。

Sub tryA()
 Dim ary As Variant
 ary = Range("A1").CurrentRegion.Columns("B:C").Value
 
 MsgBox ary(5, 1) '→ 「お」が入っている
 MsgBox ary(6, 2) '→ 「テスト6」が入っている
End Sub

いっぽう、何番目の(何行目の)データか? ではなく、
たとえば B列の「お」に対応する C列のデータを取得したいときは、
Dictionaryオブジェクトを使うと 組データの格納ができます。

Sub tryB()
 Dim dic As Object
 Dim c As Range
 
 Set dic = CreateObject("Scripting.Dictionary")
 For Each c In Range("B1", Cells(Rows.Count, "B").End(xlUp))
   dic(c.Value) = c.Offset(, 1).Value
 Next
 MsgBox "キー「お」の値は " & dic("お") '→ 「テスト5」が返る
End Sub

C列データのほうを キーに登録して、 テスト番号を指定すると、対応するB列の
あ,い,う,え,... を返す風に組むこともできます。
0 hits

【77289】二つの値を格納したい imori 15/7/1(水) 11:19 質問[未読]
【77290】Re:二つの値を格納したい kanabun 15/7/1(水) 13:12 発言[未読]
【77292】Re:二つの値を格納したい imori 15/7/2(木) 14:17 お礼[未読]

5059 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free