
VBAで引数をありでもなしでもできるようにするために
optionalというものがあります
例えば
sub aaa(bbb, optional ccc)
という使い方がされます。
sub aaa(bbb, optional ccc())
のようにして配列を引数として渡そうとするとエラーが発生してしまいます。
http://officetanaka.net/excel/vba/statement/Func …
このページによれば
ParmArrayを付けると、配列でも省略可能なものとして指定できるそうなのですが
functionではうまくいくのですが
subでやるとやはりエラーが出てしまいます。
VBAの仕様ではsubで配列を省略可能として使うことはできないのでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
上記参照URLによると、Paramarrayを使う場合はVariant型配列として宣言する必要があるそうです。
どこの誰が書いたかもわからんページですが。。。
No.2
- 回答日時:
こんばんは。
>VBAの仕様ではsubで配列を省略可能として使うことはできないのでしょうか?
既存の仕様そのものを変えようとするよりも、それに対応させればよいのではないでしょうか。
>Sub aaa(bbb, Optional ccc)
>という使い方がされます。
もちろん、パラメータ配列を引数にすることも可能ですから、パラメータ配列にするということもありますが、Variant型の引数で、配列も受けられるのですから、それで問題ということはないはずです。
それとも、何か不都合があるのでしょうか。
サンプル
'//
Sub Test1()
Dim a, b
a = 2
b = Array(1, 2, 3, 4)
TestArray a, b
End Sub
Sub TestArray(a, Optional b)
Dim c, n
If VarType(b) = vbArray Or vbVariant Then '配列の場合
For Each n In b
c = c + a * n
Next
MsgBox c
Else
'***** 'そうでない場合
End If
End Sub
'///
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
.NET - 配列変数を省略可能の引数にする方法
Visual Basic(VBA)
-
5
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
6
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
7
Application.Runエラー(1004)
Excel(エクセル)
-
8
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
-
9
DATE型変数を初期化する方法
Visual Basic(VBA)
-
10
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
11
変数名の取得
Visual Basic(VBA)
-
12
配列の参照渡しで型が一致しません。
Visual Basic(VBA)
-
13
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
14
プロシージャ名の取得
Visual Basic(VBA)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
17
Integer変数をカラにしたいのですが
Visual Basic(VBA)
-
18
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
19
どこにもフォーカスを当てたくない
Access(アクセス)
-
20
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
fortranでのcsvファイルの読み込み
-
5
順列の作成
-
6
verilogで配列の任意の8bitを取...
-
7
MATLABにて場合分け関数を定義...
-
8
配列内の内容を全て表示する方法
-
9
VBAで近似曲線の係数取得
-
10
配列変数の添字が範囲外ですと...
-
11
FORTRANのCOMMON文
-
12
Excel-VBAで内臓のMINVERSE,MM...
-
13
配列の平均をそのままに分散だ...
-
14
配列で飛び飛びの値を指定して...
-
15
Dim は何の略ですか?
-
16
VBA 1つの列を3つ以上の条件で...
-
17
Excel VBA TREND関数について
-
18
Excel-VBAの配列「Public Const...
-
19
do-while文でa〜zまでを表示さ...
-
20
【VBA】配列とWorksheetFunctio...
おすすめ情報
公式facebook
公式twitter