いつもお世話になっております。
VBAを学習しているものですが、現在プロシージャの引数について学習しています。
引数に指定する項目にOptional、ParamArrayキーワードがありますが、使い方がイマイチ理解できません。私持っている参考書等には
Optional:省略可能な引数にするにはOptionalキーワードを付ける?
ParamArray:引数の数が不定のとき・・・
なんて事が記載してあるのですが・・・、私の周りにはVBAに習熟した方が居ないため、こちらに質問させていただきました。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは
私も、完全に、
Optionalや、ParamArrayに関しては、理解しきれておりません。
なので、詳しくは、
http://homepage1.nifty.com/rucio/main/dotnet/sho …
http://msdn.microsoft.com/ja-jp/library/ct363x9h …
http://msdn.microsoft.com/ja-jp/library/0dkhs7xx …
↑これらの、Webサイト様の情報の方が、よろしいかと思います。
しかし、
恥ずかしながら、私が勝手に個人的に感じている
Optionalや、ParamArrayに関しての考え方を、
以下のコードと、共に、示させていただきます。
■■■■■■■■■■■■■■■■
Option Explicit
'Optionalに関して。++++++++++++++++++++
Sub Optional_Test(Optional value As Integer = 2) 'Optionalで、引数を省略が可能となる。
MsgBox CStr(value)
End Sub
Sub Optional_テスト1()
Call Optional_Test(0) '→0とメッセージ表示
End Sub
Sub Optional_テスト2()
Call Optional_Test '引数を省略したので→2とメッセージ表示
'※つまり、頻繁に使う値を、予め初期値として設定しておくことで、
'頻繁に同じ引数を指定する。というコードの煩雑さをなくしたりすることが可能。
End Sub
'ParamArrayに関して++++++++++++++++++++
Sub ParamArray_Test(ParamArray value() As Variant)
'受け取った配列の中身を、確認する。
Dim item As Variant
For Each item In value
Debug.Print CStr(item)
Next item
End Sub
Sub ParamArray_テスト1()
Call ParamArray_Test("こ", "れ", "ら", "の", "文字", "列が", _
"全て", "配列", "として", "変換され", "渡される")
'└→引数が自動的に配列に変換されて引き渡される。
'※いちいち配列を予め用意して渡す必要がないので、便利な時は便利。
End Sub
■■■■■■■■■■■■■■■■
以上、
コード中のコメントにも、記載させて頂きましたが、
私としましては、
Optionalに関しては、
ある程度決まっている値があり、
たまに、違った値が入ってくるプロシージャにおいて、
ある程度決まっている値を、Optionalで指定しておき、
何度も、同じ値を指定する煩雑さを避ける場合に使います。
反面、慢心になってしまうと、指定を忘れても処理が走るので。
たまに、違った値のことを忘れていて、
うっかりバグを増やしてしまうことも、少なからず、ございます。
ParamArrayに関しては、
短い配列を扱う際に、
最初から、ループ構文などで、いちいち配列を作成して処理させるより、
ParamArrayを利用して、一気に配列にしてしまってから扱う場合などに、重宝させてもらっております。
とはいっても、
私としては、使用頻度がそんなには、ございません。
以上
私の完全な私情をさしはさんでの説明となってしまって、
失礼致しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 重複したデータ(空白は除く)のVBA表記について 5 2022/08/15 12:41
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) エクセルVBAについて質問です。 2 2022/12/09 17:59
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- オープンソース ChatGPTをスプレッドシートと連携して自動でリサーチしたいんですがうまく出来ません。。。 1 2023/05/05 15:59
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
excelでsin二乗のやり方を教え...
-
これって喉仏ですか? 私は女性...
-
口の中に黒い血の塊
-
納豆食べた後の尿の納豆臭は何故?
-
2つの数値のうち、数値が小さい...
-
エクセル指定した範囲からラン...
-
筋トレするとチンコが縮んじゃ...
-
変な話しになります。尿検査で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報