- ベストアンサー
エクセルVBA
こんばんは。 いつも拝見しています。初歩的でしょうが私ではまだ 解決できません。ご指導いただきたく思います。 ユーザーフォームにテキストボックスとスピンボタンを設置し日付を 変更するようにしています。ユーザーフォームを開くと今日の日付に 変わってしまいます。C2とリンクしテキストボックスに先に値を 取得するにはどうしたらよいでしょうか。お願します。 Private Sub spnDate_SpinDown() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = Format(DateAdd("m", -1, dtDate), "yyyy/mm") End Sub Private Sub spnDate_SpinUp() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = Format(DateAdd("m", 1, dtDate), "yyyy/mm") End Sub Private Sub txtDate_Change() Range("c2") = txtDate.Value End Sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>Private Sub UserForm_Initialize() >UserForm1.txtDate.Value = Date >データ表示 >End Sub を Private Sub UserForm_Initialize() UserForm1.txtDate.Value = Range("c2").Value データ表示 End Sub に変更してみてください
その他の回答 (3)
- kmetu
- ベストアンサー率41% (562/1346)
ユーザーフォームを開くと今日の日付になるのとスピンのコードとは まったく無関係です。 どこかに今日の日付を取得するようになにかの設定 もしくは何かが記載されているはずです。 すべてが見えないのでそれ以上は何もいえません。
お礼
解決しました。夜遅くに関わらず有難うございます。
補足
夜遅くに有難うこざいます。
- SAKENOSAKA
- ベストアンサー率32% (78/240)
示されているソースの内容は 質問の内容と関係ない箇所のように思いますが txtDate に代入している箇所があやしいですね。 UserFormのInitializeで初期化しておけば 解決しそうなんですが。どうでしょう。 見てみないとはっきり言えませんが
お礼
解決しました。夜遅くに関わらず有難うございます。
補足
これでしょうか? 初期化にあたるコードはないと思います。 度々すみません。宜しくお願いします。 Private Sub UserForm_Initialize() UserForm1.txtDate.Value = Date データ表示 End Sub
- kmetu
- ベストアンサー率41% (562/1346)
> ユーザーフォームを開くと今日の日付に > 変わってしまいます どこかで初期値に今日の日付(NOWとか)を設定していませんか。
お礼
解決しました。夜遅くに関わらず有難うございます。
補足
NOWのコードは見当たりません。 スピンボタンのコードです。このコードは教えていただいたのですが その時は今回の日付を取得することを書いていませんでした。 宜しくお願いします。 Private Sub spnDate_SpinDown() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = Format(DateAdd("m", -1, dtDate), "yyyy/mm") End Sub Private Sub spnDate_SpinUp() Dim dtDate As Date dtDate = UserForm1.txtDate.Value UserForm1.txtDate.Value = Format(DateAdd("m", 1, dtDate), "yyyy/mm") End Sub
お礼
即解決でした。 理想にまた一歩前進です。 夜遅くにも関わらず有難うございました。