ユーザーフォームの全体を貼付けます。
◆EXCEL 2016
質問事項
1)VBA ニューザーフォーム内でのn月後の日付計算について⓵自年月日を入力し「2018/08/01」⓶利用期間「3」入力(nケ月後)③至年月日「2018/10/31」と計算し表示させたい。
2)オプションボタンの初期設定(true)が再度選択しなければ反映してくれない
⓵入力中頻度の高いボタンのまま、変更時は都度変更していきたい。
以下のプログラムを設定しています
⓵ Private Sub txt自年月日_Change()
⓶ Dim org As String
③ Dim buf As String
④ Dim n As Long
⑤ With Me.txt自年月日
⑥ n = val(txt利用期間)
⑦ org = .Value
⑧ If Len(org) = 8 Then
⑨ buf = _Mid(org, 1, 4) & "/" &Mid(org, 5, 2) & "/" & Mid(org, 7, 2)
⑩ If IsDate(buf) = True Then
⑪ .Value = buf
⑫ txt至年月日.Text = DateAdd("m", 3, buf) - 1
⑬ End If ' IsDate
⑭ End If ' Len = 8
⑮ End With ' ActiveCell
⑯ End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
⑫ txt至年月日.Text = DateAdd("m", 3, buf) – 1の(”m”,3,buf)-1 数値「3」を
⑥ n = val(txt利用期間)の変数「n」を指定しても数値として反応しない、これを変数でクリアできないか悩んでいます。
ちなみにVarTypeメソッドで変数「n」を調べた所「文字列ではない」msgboxで確認できました
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
※一応解決できました。
内容入力順番にありました。
⓵自年月日 ⓶至年月日 ⓷利用期間 この場合 n = val(txt利用期間.Text)
の場合先に⓶至年月日が処理され「0」とみなされ計算されていました。
入力順を変更 ⓷→⓵で⓶が「n]を⓵を数値とし計算されました。
新たなご質問です
最初の入力順で、IF文で、「txt利用期間が空白であれば処理をせず、
入力があった場合に、
⑫ txt至年月日.Text = DateAdd("m", 3, buf) - 1を計算する。」
等を記載するにはどの様にすればいいのでしょうか?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
画像の貼付けをしましたが張り付ていますでしょうか?
宜しくお願い致します。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/16 01:00
2018/08/16 18:00