[[20150425161206]] 『カレンダーコントロールについて』(らいこ) ページの最後に飛ぶ

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

 

『カレンダーコントロールについて』(らいこ)

Excel2007 VBA カレンダーコントロールについて

「A1セルを選択したら、カレンダーが表示されて、日付を選ぶとA1に反映され、カレンダーが非表示になる」
は作成できたのですが、

「A1セルを選択したら、カレンダーが表示されて、日付を選ぶとA1に反映され、カレンダーが非表示になり、
日付を選ばずに、他のセルを選択した場合、カレンダーは非表示になる」   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下線を追加したいのです。

当方で現在利用しているコードです↓

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 カレンダーコントロールについては、実際には、エクセルVBAでの使用は、ほとんどのケース、【違反行為】かな?
 2007あたりまでは、従来路線(?)で、だめだけど目こぼし(?)
 これが2010あたりでは、MSの理屈としても【違反】だと、そういえるための布石(としか思えないんですが)で
 Accessからこのコントロールそのものをなくした。2013 になると、いよいよ、ライセンス管理が厳しくなっているので
 新規作成はできなくなる模様。(従来作成済みのコードを動かす分には動くようだけど)

http://kojikoji75.hatenablog.com/entry/2013/08/17/175328
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips06.htm

 ということで、当方、2013 なので、実際に書いて確認できないので、間違っていたらごめん。

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        ActiveSheet.Calendar1.Visible = True
    Else
        ActiveSheet.Calendar1.Visible = False
    End If
 End Sub

(β) 2015/04/25(土) 18:15


[[20100728102355]]

 このスレッドの下の方にnagashimaさんという方が作成された
 Excel用のカレンダーコントロールがあります。
 コード長いですが、根気よく調べていけば便利なコードですよ!!
 これを使えば、ライセンスうんぬんは解決できます。

 私も、試してみましたが、これで十分でした。
 ただ、バグや機能追加は、ご自分で中身を吟味しなければなりませんよ!!

(ichinose) 2015/04/25(土) 18:31


コメント返信:

[ 一覧(最新更新順) ]


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