プロが教える店舗&オフィスのセキュリティ対策術

VBA初心者です。
Excelのユーザーフォームで、コンボボックスにカレンダーを埋め込むAPIを使用したところ
コンパイルエラーが生じてしまい、実行できません。
クラスモジュールで以下のSendMessageでエラーが起こっているみたいですが、解決策あれば御教授ください。

Public Property Get Value() As Date
Dim st As SYSTEMTIME
Dim lngResult As Long
lngResult = SendMessage(mlnghwndDateTime, _
DTM_GETSYSTEMTIME, 0, st)
With st
Value = DateSerial(.Year, .Month, .Day)
End With
End Property

A 回答 (4件)

candy-kokiさん、初めまして


10年以上前になりますが、03バージョンを使用したことがあります。
だいぶ内容は変わっているようですが、以前のものを覚えていません。

今回のダウンロードファイルを使ってみましたが、問題なく処理されますね。

>コンボボックスに日付表示はされているので、その後にフォームのテキストボックス部分とこのコンボボックス部分をエクセルのセルに入力するようにしたのがいけないのでしょうか..
なので、改造部分に不具合があるのではないでしょうか?(クラス破棄後の操作とか、、) どのように追加処理を行っているかを掲示してはいかがでしょう。

>VBA初心者です
カレンダーを使用する方法は、APIの他にもあるようですよ。
    • good
    • 0

「クラスモジュールで以下のSendMessageでエラーが起こっているみたい」でしたら、


’lngResult = SendMessage(mlnghwndDateTime, _
’DTM_GETSYSTEMTIME, 0, st)
というようにコメントにしたら、コンパイルエラーは出なくなりますか?

※VBE画面の「ツール」「オプション」「全般」「順次コンパイル」のチェックは外して置きましょう。
    • good
    • 0

Excelのバージョンは?


コンパイルエラー(構文エラー)例
https://teratail.com/questions/137168
    • good
    • 0

http://www.asahi-net.or.jp/~ef2o-inue/download/s …

こちらのサイトの一部だけを借用しようとしても無理です。
どこからどこまでを記述しなければいけないのか、よく理解してから借用しましょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そちらのサイトです。
一部の引用ではなく、全体を引用してユーザーフォームに入れて実行したのですが
上記の結果になってしまいました。

コンボボックスに日付表示はされているので、その後にフォームのテキストボックス部分とこのコンボボックス部分をエクセルのセルに入力するようにしたのがいけないのでしょうか...

お礼日時:2019/12/06 20:30

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