ここから本文です

VBAのマクロについて質問です。Excelの表の値を参照させて、配列に格納したいです。

t0m********さん

2012/6/2723:49:39

VBAのマクロについて質問です。Excelの表の値を参照させて、配列に格納したいです。

VBA初心者です。

添付のようなexcelがあります。
これをB3:E4まで「オレンジ=A(1,1)」「りんご=A(2,1)」…「ぶどう=B(1,2)」「オレンジ=B(2,2)」のように配列に格納するマクロの組み方を教えて下さい。よろしくお願いします。

1 to 2,エクセル,配列,Sub sample,オレンジ,組み方,End Sub

閲覧数:
1,383
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

tos********さん

2012/6/2800:42:16

Dim A(2,2), B(2,2),i,j

Sub Sample()
For i=1 to 2 '...iは行番号(上から何行目?)
For j=1 to 2 '...jは列番号(左から何列目?)
A(i,j)= Cells(i+2,j+1) '...上からi+2行目,左からj+1列目のセル値
B(i,j)= Cells(i+2,j+3) '...上からi+2行目,左からj+3列目のセル値
Next j
Next i
End Sub

-------------------------------

実は、
Cells(x,y)....という命令が
上からx列目、左からy列目のセル値を指定する命令なのです。

質問した人からのコメント

2012/7/1 08:02:25

お三方とも早急な回答をありがとうございました☆
BAは悩みましたが、一番簡単に理想のマクロが組めたtosinori615さんにさせて頂きます。
これからもっとVBAを勉強していこうと思います。
またよろしくお願い致します。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

編集あり2012/6/2806:27:56

もしこの質問にある

>「オレンジ=A(1,1)」「りんご=A(2,1)」…「ぶどう=B(1,2)」「オレンジ=B(2,2)」

AやBが変数名ではなく表の項目名だったとしたら、
こんな方法になるのかも?

Sub try()
Dim myDic As Object
Dim r As Range
Dim i As Integer
Dim v, m As Integer, n As Integer

Set myDic = CreateObject("Scripting.Dictionary")
Set r = Range("B3")

For i = 1 To 2

myDic(r.Offset(-2).Value) = r.Resize(2, 2).Value
Set r = r.Offset(, 2)

Next

' 確認

For Each v In Array("A", "B")

For m = 1 To 2
For n = 1 To 2

Debug.Print v, n, m, myDic(v)(n, m)

Next
Next
Next


End Sub

----

myDicという名前は任意でいいですけど、
myDic("項目名")(行,列)という表記方法になります。

的外れでしたらごめんなさい。

kya********さん

2012/6/2800:04:45

Variant型の変数にセル範囲を直接代入すれば、セルの値のみ2次元配列にセットされますよ。

Sub Sample()

Dim A, B
A = Range("B3:C4")
B = Range("D3:E4")

End Sub

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる