[[20080523172057]] 『カレンダーコントロールがないときは』(コウマ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『カレンダーコントロールがないときは』(コウマ)
 過去ログ等を見てみましたが、自分が使っているパソコンに
 カレンダーコントロールなるものが入っていないように思わ
 れます。
 こういう場合は、やはりあきらめるしかないのでしょうか?

 公開されているものを使うか、自作することになると思います。

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)さん
カレンダー作れました。ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.