「これはヤバかったな」という遅刻エピソード

以下のコードで実行数すると引数は省略できません。とだけ表示されます。何がよくないのでしょうか。

Public Sub ブックが開かれているか判定()
Dim wb_txt, wb_Ichiran_Hyou As Workbook
Dim txtSheet, Ichiran_Hyou As Worksheet
Dim buf, buf1 As String

'すでに開いているファイルの名前をあいまい検索にしておく
buf = Dir(ThisWorkbook.Path & "\" & "*テキスト*.xls")
buf1 = Dir(ThisWorkbook.Path & "\" & "一覧表*.csv")

On Error GoTo ErrHdl
Set wb_txt = Workbooks(buf)
Set wb_Ichiran_Hyou = Workbooks(buf1)


MsgBox buf & "," & buf1 & "開かれています。", vbInformation

Set txtSheet = wb_txt.Sheets(1)

Set Ichiran_Hyou = wb_Ichiran_Hyou.Sheets(1)


Call サンプル(txtSheet, Ichiran_Hyou)
Exit Sub

ErrHdl:
MsgBox "ファイルが開かれていません。"

End Sub



Public Sub サンプル(ByVal txtSheet As Worksheet, ByVal Ichiran_Hyou As Worksheet)



MsgBox wb_txt.Name, vbInformation  ←表示させたい


コード続く・・・

A 回答 (2件)

Dim txtSheet, Ichiran_Hyou As Worksheet


のように定義すると
txtSheetはVariant型になります。
両方Worksheet型で定義したいなら、

Dim txtSheet As Worksheet, Ichiran_Hyou As Worksheet
のようにするか

Dim txtSheet As Worksheet
Dim Ichiran_Hyou As Worksheet
のようにしてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。修正してみたのですが、まだ同じエラーがでます。

お礼日時:2021/05/13 12:26

No1です。


失礼しました。
こちらで、あなたのマクロをそのまま、実行すると
MsgBox wb_txt.Name, vbInformation  ←表示させたい
の行で、変数が定義されていませんと表示されます。
(先頭にOption Explicitを付けています)

あなたの「引数は省略できません」は、どの行で表示されますか?
    • good
    • 0
この回答へのお礼

すみません。再起動かけたらちゃんと動きました。ありがとうございました。

お礼日時:2021/05/13 13:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A