2016.
03.
25
11:16:17
まずは連続したセルの値を取得してみます。
こちらは単純です。
のように
を実行すると、選択範囲内のセルの値が配列形式で取得できます。
サンプルコードは、例えば、こんな感じφ(--)
コメントを見れば分かると思いますが、一応、解説しておきましょう。
で、A1セルからC3セルまでの範囲内の値を取得して、var1に入れています。
取得した値は配列形式です。
var1(1,1)には、A1セルの値が入っています。
var1(2,1)には、A2セルの値が入っています。
var1(3,1)には、A3セルの値が入っています。
同様に、
var1(1,2)には、B1セルの値が入っています。
var1(1,3)には、C1セルの値が入っています。
それを踏まえて
は、A1からA3までの値を表示しています。
は、A1からC1までの値を表示しています。
これが、連続したセルの値を取得する方法です。
次に、飛び飛びのセルから値を取得してみます。
飛び飛びのセルから値を取得するのは……本当に、やりたいですか?(--ゞ
取りあえず、連続したセルから取得するときのような
では、取得できません。
これを実行すると、var1にはA1セルの値のみ入ります。
ということで、試しに、こんなコードを書いてみましたφ(--)
やっていることは
1.飛び飛びで複数セルを選択
2.選択したセルの値を1つずつ取得して表示
です。
でも、これを書いた後に思ったのですよね。
「普通に1つずつ取得すれば、いーんじゃね(--?」って。
ぶっちゃけ、これでも結果は同じですφ(--)
カッコ付けたければ、配列にして
とかやれば、それっぽくなります。
今回はMsgBoxで表示していますが、取得した値を配列にでも突っ込めば
さらに、それっぽくなるでしょう。
「飛び飛びのセルの値を取得する」と解釈すると迷うかもしれませんが、
1.指定セルの値を取得する
2.「1.」を複数回繰り返す
と解釈すれば、難しくはないと思います。
そんな感じ\(--)/
こちらは単純です。
var1 = Range("A1:C5").Value
のように
var1 = Range("【選択範囲の左上のセル】:【選択範囲の右下のセル】").Value
を実行すると、選択範囲内のセルの値が配列形式で取得できます。
サンプルコードは、例えば、こんな感じφ(--)
Sub ボタン3_Click()
Dim var1 As Variant
'A1からC3までの値を取得
var1 = Range("A1:C3").Value
'A1からA3までの値を表示
MsgBox var1(1, 1) & ":" & var1(2, 1) & ":" & var1(3, 1)
'A1からC1までの値を表示
MsgBox var1(1, 1) & ":" & var1(1, 2) & ":" & var1(1, 3)
End Sub
Dim var1 As Variant
'A1からC3までの値を取得
var1 = Range("A1:C3").Value
'A1からA3までの値を表示
MsgBox var1(1, 1) & ":" & var1(2, 1) & ":" & var1(3, 1)
'A1からC1までの値を表示
MsgBox var1(1, 1) & ":" & var1(1, 2) & ":" & var1(1, 3)
End Sub
コメントを見れば分かると思いますが、一応、解説しておきましょう。
Dim var1 As Variant
var1 = Range("A1:C3").Value
var1 = Range("A1:C3").Value
で、A1セルからC3セルまでの範囲内の値を取得して、var1に入れています。
取得した値は配列形式です。
var1(1,1)には、A1セルの値が入っています。
var1(2,1)には、A2セルの値が入っています。
var1(3,1)には、A3セルの値が入っています。
同様に、
var1(1,2)には、B1セルの値が入っています。
var1(1,3)には、C1セルの値が入っています。
それを踏まえて
MsgBox var1(1, 1) & ":" & var1(2, 1) & ":" & var1(3, 1)
は、A1からA3までの値を表示しています。
MsgBox var1(1, 1) & ":" & var1(1, 2) & ":" & var1(1, 3)
は、A1からC1までの値を表示しています。
これが、連続したセルの値を取得する方法です。
次に、飛び飛びのセルから値を取得してみます。
飛び飛びのセルから値を取得するのは……本当に、やりたいですか?(--ゞ
取りあえず、連続したセルから取得するときのような
var1 = Range("A1,B3,C5").Value
では、取得できません。
これを実行すると、var1にはA1セルの値のみ入ります。
ということで、試しに、こんなコードを書いてみましたφ(--)
Sub ボタン4_Click()
Range("A1,B3,C5").Select
Dim selectedRange As Range
Dim r As Range
Set selectedRange = Selection
For Each r In selectedRange
MsgBox r.Address(False, False)
Next r
End Sub
Range("A1,B3,C5").Select
Dim selectedRange As Range
Dim r As Range
Set selectedRange = Selection
For Each r In selectedRange
MsgBox r.Address(False, False)
Next r
End Sub
やっていることは
1.飛び飛びで複数セルを選択
2.選択したセルの値を1つずつ取得して表示
です。
でも、これを書いた後に思ったのですよね。
「普通に1つずつ取得すれば、いーんじゃね(--?」って。
ぶっちゃけ、これでも結果は同じですφ(--)
Sub ボタン5_Click()
MsgBox Range("A1").Value
MsgBox Range("B3").Value
MsgBox Range("C5").Value
End Sub
MsgBox Range("A1").Value
MsgBox Range("B3").Value
MsgBox Range("C5").Value
End Sub
カッコ付けたければ、配列にして
Sub ボタン6_Click()
Dim i As Integer
Dim ary1 As Variant
'値を取得するセルを指定
ary1 = Array("A1", "B3", "C5")
'セルから値を取得して表示
For i = LBound(ary1) To UBound(ary1)
MsgBox Range(ary1(i)).Value
Next i
End Sub
Dim i As Integer
Dim ary1 As Variant
'値を取得するセルを指定
ary1 = Array("A1", "B3", "C5")
'セルから値を取得して表示
For i = LBound(ary1) To UBound(ary1)
MsgBox Range(ary1(i)).Value
Next i
End Sub
とかやれば、それっぽくなります。
今回はMsgBoxで表示していますが、取得した値を配列にでも突っ込めば
さらに、それっぽくなるでしょう。
「飛び飛びのセルの値を取得する」と解釈すると迷うかもしれませんが、
1.指定セルの値を取得する
2.「1.」を複数回繰り返す
と解釈すれば、難しくはないと思います。
そんな感じ\(--)/