回答編集履歴
1
追記
answer
CHANGED
@@ -31,13 +31,39 @@
|
|
31
31
|
> Dim cd_arr_1() As Variant
|
32
32
|
> cd_arr_1() = mk_cd_arr_1()←型が一致しません。
|
33
33
|
|
34
|
-
|
34
|
+
上記の関数ならそのコードでエラーになりません。
|
35
|
+
提示の関数は戻り値がバリアント型の配列になってますので、受ける変数もバリアント型の配列でOKです。
|
35
36
|
|
36
|
-
|
37
|
+
---
|
37
38
|
|
39
|
+
`&`で結合するなら文字列になるので、String型の配列を戻り値にした方がいいかもしれません。
|
40
|
+
その場合は、下記のようになります。
|
41
|
+
結果を代入する変数もString型の配列にします。
|
42
|
+
|
38
43
|
```vba
|
39
|
-
|
44
|
+
Function mk_cd_arr_1() As String()
|
40
|
-
cd_arr_1 = mk_cd_arr_1
|
41
|
-
```
|
42
45
|
|
46
|
+
'行数を定義
|
47
|
+
Dim cd_amnt As Long
|
48
|
+
cd_amnt = 10
|
43
49
|
|
50
|
+
'列1と列2を結合したものを配列に格納
|
51
|
+
Dim cd_arr() As String
|
52
|
+
ReDim cd_arr(cd_amnt)
|
53
|
+
|
54
|
+
Dim i As Integer
|
55
|
+
For i = 1 To cd_amnt
|
56
|
+
cd_arr(i - 1) = Worksheets(1).Cells(i + 1, 1) & Worksheets(1).Cells(i + 1, 2)
|
57
|
+
Next i
|
58
|
+
|
59
|
+
mk_cd_arr_1 = cd_arr
|
60
|
+
|
61
|
+
End Function
|
62
|
+
|
63
|
+
Public Sub test()
|
64
|
+
Dim cd_arr_1() As String
|
65
|
+
cd_arr_1 = mk_cd_arr_1()
|
66
|
+
|
67
|
+
Debug.Print cd_arr_1(1)
|
68
|
+
End Sub
|
69
|
+
```
|