エクセルのVBAについての質問です。引数を変数名で渡すときに、変数があったりなかったりすることはできるのでしょうか?

やりたいのは、元ブック、元シート、先ブック、先シートと変数名があり、先ブックは、今、あけているブックだから省略したいというようなときに、指定しないと、先ブックの変数がなくても適当に処理してくれるようにはできないのでしょうか?例えば、下記のような :="" と書くとないとして判断してくれるとかです。

Sub xxx1()
MsgBox xxx1(元ブック:="Book2.xls")
End Sub


Function 確認(ByVal 元ブック, ByVal 元シート,ByVal 先ブック:="",ByVal 先シート) as boolean
なんかコード
End Function

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/08/23 15:58:35
  • 終了:2009/08/30 16:00:03

回答(3件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692009/08/23 16:17:22

ポイント27pt

VBAではオーバーロードできません。

VBAのクラスを利用したとしても、できるような柔軟なものではないです。

http://ameblo.jp/tech-note/entry-10067984529.html

id:HALSPECIAL No.2

HALSPECIAL回答回数407ベストアンサー獲得回数862009/08/23 18:04:57

ポイント27pt

引数に、Optional キーワードを使用します。


Visual Basic 初級講座

第48回 高度なメソッド・プロパティ

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard48.h...

2.省略可能引数

のところを参照下さい。

初期値も設定できます。

  • id:SALINGER
    単にできないという回答でしたので、コメントに書くべきでした。
  • id:taknt
    http://www.relief.jp/itnote/archives/001832.php

    Optionalを つければいいだけじゃないの?

    省略できるのは 後ろのほうだけ。

    だから
    Function 確認(ByVal 元ブック, ByVal 元シート,ByVal 先ブック:="",ByVal 先シート) as boolean
    の場合、
    先ブックと先シートが省略となる。
  • id:SALINGER
    できるのか。間違いなのでオープンしなくていいです。
  • id:HALSPECIAL
    HALSPECIAL 2009/08/23 18:08:13
    コメントを見ませんでした。
    takntさんの言うとおりです。
    失礼しました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません