ExcelVBAです。


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

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

回答の条件
  • 1人2回まで
  • 登録:2008/07/21 00:05:11
  • 終了:2008/07/21 22:53:24

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912008/07/21 00:52:44

ポイント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

Mook回答回数1312ベストアンサー獲得回数3912008/07/21 00:52:44ここでベストアンサー

ポイント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ベストアンサー獲得回数11982008/07/21 06:15:37

ポイント30pt

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

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

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

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

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

id:hananeko_0

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

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

ありがとうございます!

2008/07/21 22:52:18

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません