- ベストアンサー
VBAについての質問です
ユーザーフォーム内に2つのテキストボックスがあります。 TextBox1に『10:00』と入力すると、 TextBox2には、10分後の『10:10』と自動表示させるためには、 どうしたら良いのでしょうか? また、TextBox1が空白にした時は、自動的にTextBox2も空白にする 機能も付加したいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1.Value = "" Then TextBox2.Value = "" Else If IsDate(TextBox1.Value) Then TextBox2.Value = Format(CDate(TextBox1.Value) + TimeValue("0:10:00"), "h:mm") End If End If End Sub ただしTextBox1に時刻データ以外を入力されることを想定して、データチェックはもう少し厳密に行う必要があるでしょう (上の例ではIsDate関数でのチェックしかしていない)
その他の回答 (1)
- fujillin
- ベストアンサー率61% (1594/2576)
テキストボックスのChange イベントの制御の中で、TextBox1の値(時刻かチェックする必要もありますね)に10分加えた値を、TextBox2の値とすればよいのでは?(TextBox.TextやTextBox.Valueなどを利用) 空白の場合も同様です。 テキストボックス間のデータのやりとり(表示)については、過去の質問を検索してもたくさんヒットします。 とりあえず、参考になりそうな一例を・・ http://oshiete1.goo.ne.jp/qa2092723.html VBのヘルプにもそんなサンプルコードが載っていたと記憶していますが、ヘルプも調べてみるとよいのでは?