『カレンダーコントロール』(宮本) お世話になっております。宮本でございます。 [[20051227195115]]を参考にさせていただきましたが、 分からない点がありますのでお教えいただけないでしょうか? よろしくお願いいたします。   ブックにはトップと言うシートと1,2,3・・・12と順番に13にシートがあります。 トップにカレンダーコントロール"Calendar1"があります トップで基本操作して結果を各数値のシートに反映させます。 ちなみに1〜12は月を表しています。 Sheets("トップ")のB2にCalendar1で表示した年を反映させたいと思っております。 どう記述すればいいのでしょうか? ---- 色々試してみましたが年や月を切り替えただけでは、表示は切り替わりますが 表示されている年を取得できませんでした。 カレンダーコントロールのプロパティのLinkedCellにB2を入れるとカレンダーコントロールの日付と 連動しますが、あくまで日付を選択したときです。 (やっちん) ---- おはようございます。 Sheets("トップ")にカレンダーコントロールがあるとして Sheets("トップ")のシートモジュールに Option Explicit Private Sub Calendar1_Click() Me.Range("B2").Value = Me.Calendar1.Year End Sub とされてはどうでしょうか? (SoulMan) ---- コメントありがとうございます宮本です。 Cells(1, 1).Value = Calendar1.Value とトップのシートモジュールに記し、 =TEXT(A1,"yyyy")としていたのですが、 SoulManさんの提示された方法でうまくできました。 ありがとうございます。やっちんさんも色々試していただきありがとうございます。 別の話ですが、 カレンダーの表内、日付の部分のみ クリックイベント作成しているのですが、 Private Sub Calendar1_Click() だと上部や余白でも反応してしまいます。 どう記せばいいのでしょうか? ---- こんにちは! >だと上部や余白でも反応してしまいます。 ということは日付を変更した時だけ感知したいということでしょうか? 方法は色々あると思いますが私なら変数を一つ用意して 変更前と変更後を比較して同じじゃなかったら、 「実行する」とすると思います。 ↓これは一例ですのでBookを閉じて開いた時はmydayが「0」なので 余白でも感知してしまいます。 それもいやな場合はBookを開いた時のイベントか何かに myday = Sheet1.Calendar1.Day としておく必要があると思います。 何かの参考になれば幸いです。 Option Explicit Dim myday As Long Private Sub Calendar1_Click() If myday <> Me.Calendar1.Day Then Me.Range("B2").Value = Me.Calendar1.Value MsgBox "感知しました" End If myday = Me.Calendar1.Day End Sub (SoulMan) ---- >ということは日付を変更した時だけ感知したいということでしょうか? 日付を変更したときだけと言うよりも 日付の部分をクリックした時のみって感じですかね・・・ ですから同じ日付でも日付をクリックされればOPEN 日付以外のところクリックだったら無反応って感じにしたいんです。 ---- うぅ〜〜ん、困りましたねぇ 日付の部分だけを感知するイベントはない様です。 代わりに「AfterUpdate」を使われてどうでしょうか? でも↓の時はだめなんですけどね(^^; >同じ日付でも日付をクリックされればOPEN 明日からまた回答出来ませんので他に分かる方がいらっしゃれば よろしくお願いします。m(__)m Option Explicit Private Sub Calendar1_AfterUpdate() MsgBox "再描写されました" End Sub (SoulMan) ---- クリックした後に何をするのかがわかりませんが最後に選択されていない状態にしてはどうでしょうか。 Private Sub Calendar1_Click() If Calendar1.ValueIsNull = True Then Exit Sub MsgBox Calendar1.Value Calendar1.ValueIsNull = True End Sub (やっちん) ---- 色々試してみました。 私が望むようなものは難しいようですね。 皆さんどうもありがとうございます。 今ある機能内でやりくりしたいと思います。(宮本) ---- 参考に。 http://www.h3.dion.ne.jp/~sakatsu/index.htm もしくはご自分で作られてはどうでしょう。 (やっちん) ---- 以前に作ったものです。 http://skyblue123.hp.infoseek.co.jp/Excel/Calendar.xls (川野鮎太郎)