プロが教えるわが家の防犯対策術!

VBA初心者です。下記のようにTextBoxに入る日付を複数設定していますが、ひとつにまとめることは可能でしょうか。

'宿泊日1曜日を表示
Private Sub TextBox24_Change()
TextBox24.Value = Format(TextBox24.Value, "yyyy/m/d(aaa)")
End Sub

'宿泊日2曜日を表示
Private Sub TextBox51_Change()
TextBox51.Value = Format(TextBox51.Value, "yyyy/m/d(aaa)")
End Sub

'宿泊日3曜日を表示
Private Sub TextBox78_Change()
TextBox78.Value = Format(TextBox78.Value, "yyyy/m/d(aaa)")
End Sub

'宿泊日4曜日を表示
Private Sub TextBox105_Change()
TextBox105.Value = Format(TextBox105.Value, "yyyy/m/d(aaa)")
End Sub

A 回答 (2件)

こんにちは


#1様が回答されている通り、クラスを作り
Public Property Set すれば一定のイベントをまとめる事は出来ます
方法については、参考サイトを見てください。
https://excel-ubara.com/excelvba3/EXCELFORM023.h …

少し気になる点が、、
TextBox24_Change()・・・これって1文字を入力した段階で実行されてしまうのではないでしょうか?(良いのかもしれませんが)
自身のフォーマットを変更する時などは
_Exit(ByVal Cancel As MSForms.ReturnBoolean) などのイベントを使用すると思いました。
しかし、
Exitが良いと思うのですが、Exitイベントはクラスモジュールで使えないので
他の対策が必要と思われます。
    • good
    • 0
この回答へのお礼

参考サイトありがとうございます。勉強しながら参考にしてみます。

お礼日時:2022/03/31 14:46

https://mat0401.info/blog/access-withevents/
クラスを作ることによって、コントロール配列っぽく扱うことができます。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。初心者には難しそうですが勉強してみます。

お礼日時:2022/03/31 14:45

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A