A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは
VBAは、配列の中に配列の代入は出来ません
サブルーチン、ファンクションの引数に配列を入れる事は出来ます
戻り値として配列の取得も出来ます
Dim arr as Variant
この場合、arrは値代入時にその型及び配列かが決まります
補足には代入コードの掲示が無いので 変数arr は配列とは限りません
arr = Array("A") 配列(1次元)
arr = Range("A1:F10") 配列(2次元)
arr = "A" 配列ではない
arr = Range("A1") 配列ではない
Dim arr() as Variant
とした場合、配列として宣言されます
arr = Array("A") 代入可
arr = Range("A1:F10") 代入可
配列として宣言されているので
arr = "A" コンパイルできない
arr = Range("A1") 13 型エラー
"A" 以下は
redim でサイズを確保する必要があります
ReDim arr(0)
arr(0) = "A"
arr(0) = Range("A1")などで
(1次元)
更にDim arr as Variantは配列作成後 redim 出来ますが
直接 Preserve 出来ない(1004エラー)
(Preserveする場合は事前にredimで初期化する必要がありますので
結果として、出来ない)
更に2次元などで色々ありますが、、調べてみてください。
No.2
- 回答日時:
こんばんは
「関数名」という名のサブルーチン(プロシージャ)だったりと紛らわしいですし、それに
>variant型と定義された配列はvariant型の配列の引数に代入できないのですか?
ご提示の例は、「配列の引数」ではなく「プロシージャ呼び出しの引数」ですけれど・・
実際に、何をしようとしているのかはまったくわかりませんけれど、ご提示のコードの意味で良いのなら、そのままで可能ですよ。
Sub Main()
Dim ary() As Variant
ReDim ary(1 To 3)
ary(1) = 111
ary(2) = 222
ary(3) = 333
関数名 ary
End Sub
Sub 関数名(ary2() As Variant)
Debug.Print Join(ary2, ", ")
End Sub
※ 個人的には
Sub 関数名(ary2 As Variant)
と括弧なしで仮引数の宣言をしちゃいますけれど・・
No.1
- 回答日時:
例えばこうゆう事?
Dim arr As Variant
Sub 関数名(arr2 As Variant)
Debug.Print arr2(1)
End Sub
Sub megu()
arr = Array(1, 2, 3, 4, 5)
関数名 (arr)
End Sub
受け取る引数の変数名とグローバル変数の変数名を変えて、且つ()をなくせばいいのでは?
Valiant型では勝手に配列としてarr2(要素番号)が定まりますし。
動的に変更したいってなら別ですけど。
その為の()付きなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET 2つの配列を連動して並...
-
数値を浮動小数点32bitHEXコー...
-
excelの、ある数式内の{}の意...
-
エクセルへのデータの貼付時に...
-
VBAのWorksheetFunctionの引数...
-
エクセル、この関数の意味は?
-
配列の値を置換するにはどうす...
-
in_addrからchar型の文字列の変換
-
COUNTIFの複数条件による指定
-
vbsでテキストファイル内の文字...
-
○桁にある数値を取得する VB.N...
-
J3016もしくはP4M-865GMAXIIの...
-
これ以上省略することは出来な...
-
IFSでカンマ区切りの変数を読み...
-
【エクセル】 関数による電子...
-
C言語 exitの使い方
-
VBAでダブルコーテーション入り...
-
エラーの意味は? Lvalue req...
-
jsp~jspにhiddenを使って変数...
-
EXCEL/VBA 変数の値をクリップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelの、ある数式内の{}の意...
-
エクセルへのデータの貼付時に...
-
配列の値を置換するにはどうす...
-
初心者プログラミング
-
vbsでテキストファイル内の文字...
-
COLUMN(1:1)の意味を教え...
-
初心者が簡単なPowerShellスク...
-
VBAのWorksheetFunctionの引数...
-
RichTextBoxの改行を認知してく...
-
VBSで特定の文字列が含まれる場...
-
数値を浮動小数点32bitHEXコー...
-
エクセル、この関数の意味は?
-
in_addrからchar型の文字列の変換
-
VBAで配列に文字列が入らない?
-
○桁にある数値を取得する VB.N...
-
VB 配列の内容をファイルに書...
-
【エクセル】 関数による電子...
-
VB6で配列を文字列に変換する方...
-
VB.NET 2つの配列を連動して並...
-
VBAで配列内のマッチ
おすすめ情報
例えばですが
Dim arr as Variant
Sub 関数名(arr() as Variant)
End Sub
次のコードはどこが間違っていますか?
Sub 関数名(arr2 As Variant)はarr2()