[[20110929101857]] 『カレンダーを表示』(まつや) ページの最後に飛ぶ

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

 

  『カレンダーを表示』(まつや)

  セルをクリックしてカレンダーをVBAで表示するようにしたのですが、×ボタンを押して消えるようになっています。
他のセルをクリックしてカレンダーが消えるようにできますでしょうか??

  Private Sub Worksheet_SelectionChange(ByVal target As Range)
    ' 複数セル選択時は無視
    If target.Count <> 1 Then Exit Sub   
    'A4,E4,A14:A39,I57,クリック時のみ
    If Not Intersect(target, Range("C4, E4,A14:A39,I57")) Is Nothing Then
    ' カレンダーフォームを起動する
        Call ShowCalendarFromRange(target)
     End If
 End Sub

  Sheet1に記述している内容です。
  宜しくお願いします。

 カレンダーフォームとはなんですか?
 ユーザーフォームで作ったカレンダーでしょうか?
 ShowCalendarFromRange や、その先のコードがどうなっているのかも見てみたいですね。
 (momo)

 あ、わかりました
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_100.html
 こちらのフォームですね。

 ShowCalendarFromRange の中に
 .Show
 という所があるので、そこを
 .Show vbModeless
 に変更して、Sheetのコードは

  Private Sub Worksheet_SelectionChange(ByVal target As Range)
    ' 複数セル選択時は無視
    If target.Count <> 1 Then Exit Sub
    'A4,E4,A14:A39,I57,クリック時のみ
    If Not Intersect(target, Range("C4, E4,A14:A39,I57")) Is Nothing Then
    ' カレンダーフォームを起動する
        Call ShowCalendarFromRange(target)
    Else          ’★追加
        Unload FRM_CALENDAR ’★追加
    End If
 End Sub

 にしてみるとどうでしょうか?
 (momo)

  そうです。
  最初はどういうことでしょうか?
  (まつや)

 > 最初はどういうことでしょうか?
 ごめんなさい、何を聞かれているのか解らないのですが
 (momo)

 > 最初
    ↓
 >>ShowCalendarFromRange の中に
 >>.Show
 >>という所があるので

 が、見つけられないのでは?

 (HANA)


  そうです。説明不足で申し訳ございません。
  (まつや)

 HANAさんフォローありがとうございます。

 ShowCalendarFromRangeプロシージャをコールしているのですから
 どこかにShowCalendarFromRangeというプロシージャがありますよね?

 F8でステップ実行すれば見つかりますし
 Ctrl+Fで対象をカレントプロジェクト、検索文字にShowCalendarFromRange
 とすれば、見つかると思います。

 そのプロシージャの中ほどよりちょっと下あたりに
 .Show があると思います。

 または.Showで検索しても良いかもしれませんね

 HPなどで、ありがたく無償で頂いたコードもただ使うだけじゃなくて
 コードをちゃんと読んで理解される事をお勧めします。
 ユーザーフォームを扱っているプロジェクトでShowをどこでしているか解らないというのは
 今後のためにも良くないですよ。
 (momo)

コメント返信:

[ 一覧(最新更新順) ]


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