回答編集履歴
3
補足の追加
answer
CHANGED
@@ -30,10 +30,22 @@
|
|
30
30
|
'ここでは"a"が出力。
|
31
31
|
End Sub
|
32
32
|
```
|
33
|
+
---
|
34
|
+
**補足**
|
33
35
|
配列に代入した値をコピーするには、コピー先のValueに代入します。
|
34
36
|
```vba
|
35
37
|
Dim testRange() As Variant
|
36
38
|
testRange = Range("A1:D5").Value
|
37
39
|
|
38
40
|
Range("A11:D15").Value = testRange
|
39
|
-
```
|
41
|
+
```
|
42
|
+
上記のコードを下記のように記述しても同じ結果になります。
|
43
|
+
```vba
|
44
|
+
Dim testRange As Variant
|
45
|
+
testRange = Range("A1:D5")
|
46
|
+
|
47
|
+
Range("A11:D15") = testRange
|
48
|
+
```
|
49
|
+
既定のプロパティとしての `.Value` が自動的に使用されているのですが、
|
50
|
+
値の退避という目的を明確にするには、省略しない書き方のほうがいいでしょう。
|
51
|
+
また、`Dim testRange As Variant` は、バリアント変数の中に、バリアント配列が格納されるという2重構造になりますので、`Dim testRange() As Variant` と直接バリアント配列に格納したほうが無駄がないでしょう。
|
2
コードのコメント修正
answer
CHANGED
@@ -25,7 +25,7 @@
|
|
25
25
|
'ここではもちろん"a"が出力。
|
26
26
|
|
27
27
|
Range("A1") = "!"
|
28
|
-
'
|
28
|
+
'シートのA1のコンテンツを編集。
|
29
29
|
Debug.Print "2", testRange(1, 1)
|
30
30
|
'ここでは"a"が出力。
|
31
31
|
End Sub
|
1
説明の修正、追加
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Variant型
|
1
|
+
Variant型にSetすると、Rangeとして参照されますので、Rangeとして宣言した場合と同じ結果になります。
|
2
2
|
|
3
3
|
```vba
|
4
4
|
Public Sub test1()
|
@@ -14,7 +14,7 @@
|
|
14
14
|
End Sub
|
15
15
|
```
|
16
16
|
|
17
|
-
値を配列に格納するには、
|
17
|
+
値を配列に格納するには、Value を Variantの動的配列に代入します。
|
18
18
|
|
19
19
|
```vba
|
20
20
|
Public Sub test2()
|
@@ -29,4 +29,11 @@
|
|
29
29
|
Debug.Print "2", testRange(1, 1)
|
30
30
|
'ここでは"a"が出力。
|
31
31
|
End Sub
|
32
|
+
```
|
33
|
+
配列に代入した値をコピーするには、コピー先のValueに代入します。
|
34
|
+
```vba
|
35
|
+
Dim testRange() As Variant
|
36
|
+
testRange = Range("A1:D5").Value
|
37
|
+
|
38
|
+
Range("A11:D15").Value = testRange
|
32
39
|
```
|