回答編集履歴
3
補足の追加
test
CHANGED
@@ -62,6 +62,10 @@
|
|
62
62
|
|
63
63
|
```
|
64
64
|
|
65
|
+
---
|
66
|
+
|
67
|
+
**補足**
|
68
|
+
|
65
69
|
配列に代入した値をコピーするには、コピー先のValueに代入します。
|
66
70
|
|
67
71
|
```vba
|
@@ -75,3 +79,23 @@
|
|
75
79
|
Range("A11:D15").Value = testRange
|
76
80
|
|
77
81
|
```
|
82
|
+
|
83
|
+
上記のコードを下記のように記述しても同じ結果になります。
|
84
|
+
|
85
|
+
```vba
|
86
|
+
|
87
|
+
Dim testRange As Variant
|
88
|
+
|
89
|
+
testRange = Range("A1:D5")
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
Range("A11:D15") = testRange
|
94
|
+
|
95
|
+
```
|
96
|
+
|
97
|
+
既定のプロパティとしての `.Value` が自動的に使用されているのですが、
|
98
|
+
|
99
|
+
値の退避という目的を明確にするには、省略しない書き方のほうがいいでしょう。
|
100
|
+
|
101
|
+
また、`Dim testRange As Variant` は、バリアント変数の中に、バリアント配列が格納されるという2重構造になりますので、`Dim testRange() As Variant` と直接バリアント配列に格納したほうが無駄がないでしょう。
|
2
コードのコメント修正
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
Range("A1") = "!"
|
54
54
|
|
55
|
-
'
|
55
|
+
'シートのA1のコンテンツを編集。
|
56
56
|
|
57
57
|
Debug.Print "2", testRange(1, 1)
|
58
58
|
|
1
説明の修正、追加
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Variant型
|
1
|
+
Variant型にSetすると、Rangeとして参照されますので、Rangeとして宣言した場合と同じ結果になります。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
値を配列に格納するには、Variant
|
33
|
+
値を配列に格納するには、Value を Variantの動的配列に代入します。
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -61,3 +61,17 @@
|
|
61
61
|
End Sub
|
62
62
|
|
63
63
|
```
|
64
|
+
|
65
|
+
配列に代入した値をコピーするには、コピー先のValueに代入します。
|
66
|
+
|
67
|
+
```vba
|
68
|
+
|
69
|
+
Dim testRange() As Variant
|
70
|
+
|
71
|
+
testRange = Range("A1:D5").Value
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
Range("A11:D15").Value = testRange
|
76
|
+
|
77
|
+
```
|