• ベストアンサー

エクセル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

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

>Private Sub UserForm_Initialize() >UserForm1.txtDate.Value = Date >データ表示 >End Sub を Private Sub UserForm_Initialize() UserForm1.txtDate.Value = Range("c2").Value データ表示 End Sub に変更してみてください

samohankin
質問者

お礼

即解決でした。 理想にまた一歩前進です。 夜遅くにも関わらず有難うございました。

その他の回答 (3)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

ユーザーフォームを開くと今日の日付になるのとスピンのコードとは まったく無関係です。 どこかに今日の日付を取得するようになにかの設定 もしくは何かが記載されているはずです。 すべてが見えないのでそれ以上は何もいえません。

samohankin
質問者

お礼

解決しました。夜遅くに関わらず有難うございます。

samohankin
質問者

補足

夜遅くに有難うこざいます。

回答No.2

示されているソースの内容は 質問の内容と関係ない箇所のように思いますが txtDate に代入している箇所があやしいですね。 UserFormのInitializeで初期化しておけば 解決しそうなんですが。どうでしょう。 見てみないとはっきり言えませんが

samohankin
質問者

お礼

解決しました。夜遅くに関わらず有難うございます。

samohankin
質問者

補足

これでしょうか? 初期化にあたるコードはないと思います。 度々すみません。宜しくお願いします。 Private Sub UserForm_Initialize() UserForm1.txtDate.Value = Date データ表示 End Sub

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

> ユーザーフォームを開くと今日の日付に > 変わってしまいます どこかで初期値に今日の日付(NOWとか)を設定していませんか。

samohankin
質問者

お礼

解決しました。夜遅くに関わらず有難うございます。

samohankin
質問者

補足

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

関連するQ&A