投稿日 | : 2005/09/16(Fri) 11:48 |
投稿者 | : ダンボ |
URL | : |
タイトル | : 【解決】VBAで「型が一致しません」 |
花ちゃんさん、どうもありがとうございました。
下記コードで望みどおりの仕様になりました。助かりました。ちょっと一人では解決できなかった。
> Object型に変更して見てください。
う〜ん、納得できない。VBAのバグと言われてもしょうがないのでは?
> ありますよ。自動メンバ表示で出てきますよ。
Sub DateCheck(TBOX As TextBox)の編集時には出てこない。
Sub DateCheck(TBOX As Object)の編集時でも出てこない(こちらは当然?)。
> 文字を反転させたい
それでも反転しなかったのでプロパティリストを再確認すると"HideSelection"を発見。
ああ、VBAとVB6はちょっとずつ違いますね。
Private Sub cmdOK_Click()
If DateCheck(txt1) Then Exit Sub
If DateCheck(txt2) Then Exit Sub
If CDate(txt1.Text) > CDate(txt2.Text) Then
MsgBox ("開始日>終了日")
Exit Sub
End If
Me.Hide
End Sub
Private Sub txt1_AfterUpdate()
txt1.Text = Format(txt1.Text, "Long Date")
DateCheck txt1
End Sub
Private Sub txt2_AfterUpdate()
txt2.Text = Format(txt2.Text, "Long Date")
DateCheck txt2
End Sub
Private Function DateCheck(TBOX As Object) As Boolean
If Not IsDate(TBOX.Text) Then
TBOX.SelStart = 0
TBOX.SelLength = Len(TBOX.Text)
TBOX.SetFocus
MsgBox ("正しい日付を入力してください")
DateCheck = True
Else
DateCheck = False
End If
End Function