
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も見ています
-
.NET - 配列変数を省略可能の引数にする方法
Visual Basic(VBA)
-
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
-
4
Application.Matchで特定行の検索
Visual Basic(VBA)
-
5
【エクセル】シート内の表をUserFormに画像として表示させる方法
Excel(エクセル)
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
本当にPublicな変数(配列で)
Visual Basic(VBA)
-
8
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
9
構造体をコレクションに入れて扱いたいのですが…
コレクション
-
10
クラスのプロパティに構造体を使いたい。
Visual Basic(VBA)
-
11
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
12
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
13
VB6で配列を引数にするときの2通りの方法について
Visual Basic(VBA)
-
14
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
15
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
16
コマンドプロンプトでのPDFファイルの結合
その他(コンピューター・テクノロジー)
-
17
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
18
ExcelVBAのコントロールの種類の取得方法
Visual Basic(VBA)
-
19
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
20
UserForm.showでマルチページ1を見出し
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
特定のセル範囲で4文字以上入力...
-
2つ以上の変数を比較して最大数...
-
配列変数の添字が範囲外ですと...
-
subの配列引数をoptionalで使う...
-
配列に同じ値を入れる方法
-
Excel-VBAで内臓のMINVERSE,MM...
-
delphiで配列を、コピーするには。
-
50音
-
VB6 配列を初期化したい
-
VBA 1次元配列を2次元に追加する
-
Excel VBA配列をFunctionに渡す
-
ListViewで、非表示列って作れ...
-
教えて下さい
-
特定のPCだけ動作しないVBAマク...
-
UserForm1.Showでエラーになり...
-
ExcelVBAでPDFを閉じるソース
-
メッセージボックスのOKボタ...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
ListViewで、非表示列って作れ...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
特定のセル範囲で4文字以上入力...
-
2次元動的配列の第一引数のみを...
-
MATLABにて場合分け関数を定義...
-
配列変数の添字が範囲外ですと...
-
エクセルで最小値から0を除く方法
-
subの配列引数をoptionalで使う...
-
【VBA】配列とWorksheetFunctio...
-
ビンゴ
-
for each の現在の配列ポインタ...
-
Excel-VBAの配列「Public Const...
-
VLOOKUP関数で、一番下...
-
Dim は何の略ですか?
-
Array配列の末尾に追加したい。
-
VBAで近似曲線の係数取得
-
VBA Match関数の限界
おすすめ情報