• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATCH関数について)

VBでMATCH関数を使用して日付を検索する際に発生するエラー

このQ&Aのポイント
  • VBを勉強している方が、MATCH関数を使用して日付を検索するプログラムを作成しましたが、実行時エラー1004が発生してしまいます。
  • 具体的には、worksheetfunctionクラスのMATCHプロパティを取得できないというエラーが表示されます。
  • 日付が並んでいる範囲であるc3:ag3に問題はないので、原因を特定するためには他の要素を調べる必要があるようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Test1 のように、入力値をLong型(もしくはDoubl型)にして Match関数を使います。 また、Test2のように、入力値を一旦、セルに格納する方法もあります。 こちらが、ワークシート関数を使う意味合いからすれば、わかりやすいかもしれません。 両方とも、入力値が一致しない場合はエラーメッセージを出すようにしています。 Sub Test1()   Dim 日付 As Range   Dim n As String, ans As String     Set 日付 = Worksheets(1).Range("c3:ag3")      n = InputBox("日付は")      Dim inpDate As Long      '// 追加     inpDate = CDate(n)    '// 追加      On Error GoTo ErrorTrp     ans = Application.WorksheetFunction.Match(inpDate, 日付, 0) '// 追加     MsgBox (ans)      Exit Sub    ErrorTrp:   MsgBox n & "はありません" End Sub Sub Test2()   Dim 日付 As Range   Dim n As String, ans As String     Set 日付 = Worksheets(1).Range("c3:ag3")      n = InputBox("日付は")     Range("AI3") = n      On Error GoTo ErrorTrp     ans = Application.WorksheetFunction.Match(Range("AI3"), 日付, 0)     MsgBox (ans)   Exit Sub ErrorTrp:   MsgBox n & "はありません" End Sub

guts
質問者

お礼

早速ご回答いただきまして有難う御座いました。 無事に完成することができました。

関連するQ&A