ExcelVBAです。


ユーザーフォームでカレンダーによる日付入力を指定のセルに行っていますが、作成した時の月が(保存した時の状態)毎回表示されてしまいます。

毎回カレンダーが表示された時に当月のカレンダーが開くようにするにはどうしたらよいですか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/07/21 22:53:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント40pt

カレンダーコントロールのことかと思いますが、ユーザフォームを表示する直前にカレンダーの日付を

設定すればよいと思います。


ユーザフォームが UserForm1、カレンダーコントロールが Calender1 だとすると、

シートモジュールで下記のようにし

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    UserForm1.Show
    Cancel = True
End Sub

ユーザフォームで

Private Sub Calendar1_Click()
    ActiveCell.Value = Calendar1.Value
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    UserForm1.Calendar1.Year = Year(Date)
    UserForm1.Calendar1.Month = Month(Date)
    UserForm1.Calendar1.Day = Day(Date)
End Sub

となっていれば、シートのセルをダブルクリックするたびに、日付入力が起動しますが、

カレンダーは毎回本日にリセットされて表示されます。

http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06_2.htm

id:hananeko_0

いつもありがとうございます。

「ユーザフォームを表示する直前にカレンダーの日付を設定」とのこと。

さっそく明日会社でトライしてみます!

2008/07/21 22:49:56

その他の回答1件)

id:Mook No.1

回答回数1314ベストアンサー獲得回数393ここでベストアンサー

ポイント40pt

カレンダーコントロールのことかと思いますが、ユーザフォームを表示する直前にカレンダーの日付を

設定すればよいと思います。


ユーザフォームが UserForm1、カレンダーコントロールが Calender1 だとすると、

シートモジュールで下記のようにし

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    UserForm1.Show
    Cancel = True
End Sub

ユーザフォームで

Private Sub Calendar1_Click()
    ActiveCell.Value = Calendar1.Value
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    UserForm1.Calendar1.Year = Year(Date)
    UserForm1.Calendar1.Month = Month(Date)
    UserForm1.Calendar1.Day = Day(Date)
End Sub

となっていれば、シートのセルをダブルクリックするたびに、日付入力が起動しますが、

カレンダーは毎回本日にリセットされて表示されます。

http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06_2.htm

id:hananeko_0

いつもありがとうございます。

「ユーザフォームを表示する直前にカレンダーの日付を設定」とのこと。

さっそく明日会社でトライしてみます!

2008/07/21 22:49:56
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント30pt

http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06.htm

カレンダーは 何を使っているのか わかりませんが、

だいたい、日付をセットする場合は、取得するのとは 逆の動作をします。

つまり、日付を入れてあげればいいのです。

今日の日付をセットしてみてください。

id:hananeko_0

明日会社で、どのカレンダーを使っているか確認してみます!

HP参考にさせていただきます!

ありがとうございます!

2008/07/21 22:52:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません