- ベストアンサー
VBでMATCH関数を使用して日付を検索する際に発生するエラー
- VBを勉強している方が、MATCH関数を使用して日付を検索するプログラムを作成しましたが、実行時エラー1004が発生してしまいます。
- 具体的には、worksheetfunctionクラスのMATCHプロパティを取得できないというエラーが表示されます。
- 日付が並んでいる範囲であるc3:ag3に問題はないので、原因を特定するためには他の要素を調べる必要があるようです。
- みんなの回答 (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
お礼
早速ご回答いただきまして有難う御座いました。 無事に完成することができました。