ここから本文です

VBA上でワークシート関数を使用する時 マクロでワークシート関数のmatc...

kaz********さん

2016/2/900:10:50

VBA上でワークシート関数を使用する時

マクロでワークシート関数のmatch関数を使いたいのですがどうしてもエラーが出てしまいます。
あれこれ調べてみたのですが、どうしてもわかりません。

ワークシートのA1からA5に日付が入っています。
inputboxのデフォルトの日付はA1入力されている日付になるようにしています。
入力された日付が、リストの日付の何番目にあるかをワークシートのC1に表示されるようにしたいです。
どこがおかしいか教えて下さい。

Sub テスト()
Dim i As String
i = InputBox("日付を入れてください。", "入力確認", Format(Range("A1"), "m月d日"))
Range("C1") = Application.WorksheetFunction.Match(CDate(i), Range("A1:A5"), 0)
End Sub

バージョンはexcel2010です。

閲覧数:
65
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2016/2/901:45:08

Range("C1") = Application.WorksheetFunction.Match(CDate(i), Range("A1:A5"), 0)



Range("C1") = Application.WorksheetFunction.Match(CLng(CDate(i)), Range("A1:A5"), 0)

ということでしょうか?
Match関数はシリアル値で検索しないと、ダメです。

質問した人からのコメント

2016/2/10 21:15:11

ありがとうございます。
見事にできました。感謝、感謝です。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

web********さん

2016/2/900:29:33

CDateの使い方が問題なのかな?
http://officetanaka.net/excel/vba/function/CDate.htm

例えば
?cdate("2月8日")
2016/02/08

こんな感じで戻り値はyyyy/mm/dd形式になります

?Format(cdate("2月8日"),"mm月dd日")
02月08日

なんか意味無いような気もしますがw

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる