14

MSAccess用のVBAスクリプトにプライベートプロシージャがあります。

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val() As Variant, y_val() As Variant, Optional y_val2() As Variant = ????)

ご覧のとおり、値の配列に対してオプションの最後のパラメーターが必要です。

どのようなデフォルトパラメータを割り当てる必要がありますか?オプションの整数値を使用してそれを実行し、たとえば0を割り当てると、すべて問題ありません。

上記のように配列を使用して配列を割り当てると、その行はエラーとして赤=>とマークされます(コンパイルされません)。

4

4 に答える 4

18

VBA でオプションの配列が必要な場合は、Variant配列指定子なしで宣言しますが、とにかく配列としてアクセスします。このようにして、単に s の配列ではなく、s のVariant配列を保持する (単一の変数) を取得します。デフォルト値は必要ありません:VariantVariant

Private Sub drawLineDiagram(chartSpace As Variant, title As String, caption As String, x_val As Variant, y_val As Variant, Optional y_val2 As Variant)

Variant一貫性を保つために、他の 2 つのパラメーターも plain として宣言します。

IDE が気に入らない場合は、使用しないでください。メモ帳を使用します。次に、書いたコードを貼り付けます。

于 2010-02-15T11:30:52.627 に答える
5

おそらく、パラメーター配列が必要です。

プロシージャ宣言では、通常の方法でパラメーター リストを定義します。最後のパラメーターを除くすべてのパラメーターは必須である必要があります (省略可能 (Visual Basic) ではありません)。

最後のパラメーター名の前に ByVal ParamArray キーワードを付けます。このパラメータは自動的にオプションになります。Optional キーワードを含めないでください。

--方法: 不特定数のパラメーターを受け取るプロシージャをオーバーロードする (Visual Basic)

VBA のリファレンス:パラメーター配列について

于 2010-02-15T11:38:05.407 に答える
1

IDE はあまり役に立たないかもしれませんが、(一度だけ) ヘルプに答えが含まれています:
ParamArray
Optional. 最後の引数が Variant 要素の Optional 配列であることを示すために、arglist の最後の引数としてのみ使用されます。ParamArray キーワードを使用すると、任意の数の引数を指定できます。ParamArray は、ByVal、ByRef、または Optional では使用できません。

于 2010-02-15T11:35:12.757 に答える