『カレンダーコントロールがないときは』(コウマ) 過去ログ等を見てみましたが、自分が使っているパソコンに カレンダーコントロールなるものが入っていないように思わ れます。 こういう場合は、やはりあきらめるしかないのでしょうか? ---- 公開されているものを使うか、自作することになると思います。 http://www.h3.dion.ne.jp/~sakatsu/ なお、カレンダーコントロールは、アクセスに附属しているものです。 アクセスをお持ちなら使えると思います。 ユーザーフォームで作るならちょいと面倒かもしれませんが、 ワークシートで作るならそんなに面倒ではないと思います。 (MARBIN) ---- >ワークシートで作るならそんなに面倒ではないと思います。 一例をアップしておきます。 A1=DATE(YEAR(TODAY()),MONTH(TODAY())+B1-120,1) ※-120は10年前から B1=1 A2=TEXT(COLUMN(),"aaa") A2をG2までコピペ A3=(ROW()-3)*7+COLUMN()-WEEKDAY($A$1)+1 A3の条件付き書式 数式が =MONTH(DATE(YEAR($A$1),MONTH($A$1),A3))<>MONTH($A$1) 書式:フォントを白 A3をG3までコピペ これでカレンダーが出来ます。 B1の数値を増減することによってカレンダーの年月を前後 させることが出来ます。 フォームのスピンボタンを設置します。 コントロールの書式設定のコントロールタブで リンクするセルを B1 最小値:0 最大値:好きなだけ大きな数 変化の増分:1 とします。 これでスピンボタンでカレンダーの日付を変えられるようになります。 今度は、セルをWクリックすることによってクリックした日付けを 取得します。 シートタブを右クリック ↓ コードの表示 ↓ (General)をクリックして"Worksheet"を選択 ↓ 下記のコードをプロシージャ内に貼り付けます。 --------------------- "Selection_Change"をクリックして"BeforeDoubleClick"を選択 ↓ Cancel = True If Target.Row < 3 Then Exit Sub If Target.Value = "" Or Month(Worksheets(1).Cells(1, 1).Value + Target.Value - 1) <> _ Month(Worksheets(1).Cells(1, 1).Value) Then Exit Sub MsgBox Format(Worksheets(1).Cells(1, 1).Value + Target.Value - 1, "yyyy年m月d日") ------------------ ↓ 右上の赤い×をクリックしてエクセルに戻ります。 これでセルをWクリックでWクリックした日付がMsgBoxで表示されます。 これはMsgBoxですが、コードを改変することによって、Wクリックした 日付けをどこかのセルに転記することも可能です。 Wクリックではなく、右クリックにすることも可能です。 (MARBIN) ---- A2〜A8のフォントの色を赤、G2〜G8のフォントの色を青にして おいてもいいですね。 また、工夫すれば、祝日の色を変えることも出来ると思います。 (MARBIN) ---- 祝日にも色を着ける方法です。 祝日リストを作り、 「祝日」と名前を定義しておく A3の条件付き書式の第2条件 数式が =COUNTIF(祝日,$A$1+A3-1)<>0 (MARBIN) ---- (MARBIN)さん カレンダー作れました。ありがとうございました。