[[20080130174446]] 『ユーザーフォームのRefEdit1について』(karakan) ページの最後に飛ぶ

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

 

『ユーザーフォームのRefEdit1について』(karakan)

 UserForm1.Show
 Set a = Range(UserForm1.RefEdit1.Value)

 クリックしたセルアドレスを取得したいのですが、エラーします。
 何がいけないのでしょうか?

 Set a = Range(UserForm1.RefEdit1.Value)のところでエラーして
 rangeメゾットは失敗しました。のエラーです。(karakan)


 RefEdit1に何も入力されてないのでは?
 (seiya)

 ユーザーフォームの定義の所で初期値valueを指定してやれば、
 OKでした。(何故だろう?もちろんマクロ動かした時もセルクリックしましたが。)
(karakan)

 > UserForm1.Show
 > Set a = Range(UserForm1.RefEdit1.Value)
 この通りに書かれていたら、クリックすることはできないでしょう。
 (seiya)

 おっしゃるとおりですなんか変です。
 ユーザーフォームの定義の所で初期値valueを$a$1としています。

 UserForm1.Show
 Set a = Range(UserForm1.RefEdit1.Value)
 a.Select

 b1セルをクリックしてもa1セルがアクティブになってしまいます。
 どうしてなのでしょうか

 まず
 UserForm1.Show
 は単独でSub Routine にします。

 refeditのexit eventで取得すればよいのでは?

 Private Sub RefEdit1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 Dim a As Range
 If RefEdi1.Value = "" Then Exit Sub
 Set a = Range(Me.RefEdit1.Value)
 MsgBox a.Address
 End Sub
 とか?
 (seiya)
 追記:念のため..UserForm1のコントロールがRefEdit1のみだとExitイベントは
       発生しません。


 以下の行があると何も処理しませんでした。
 If RefEdi1.Value = "" Then Exit Sub
 今回フォームの初期値でA1を指定しているので、無くても良いかなと思ってます。
 また、If RefEdi1.Value = "" Then Exit Subで色々試しているとRefEdi1.Value自体
 が拾えないのでは?と思いこの行の前にSTOPを入れてみましたら、止まらない。
 Private Sub RefEdit1_Exit(・・・自体がちょっと変わった動作するのでしょうか?(Excel 2003)
 どちらにしても現状希望する動作には問題ありません。
 seiyaさんありがとうございます。
 (karakan) 


 わっ!
 > If RefEdi1.Value = "" Then Exit Sub
   If RefEdit1.Value = "" Then Exit Sub
           ^^^
   タイプミスしています...
 (seiya)

やはりエラーストップしないんですね。有り難う御座います。(karakan)

 > やはりエラーストップしないんですね。
 どういうこと?
 (seiya)

 クロ実行した時に If RefEdi1.Value = "" Then Exit Sub で t が無い為に
 ラーして実行が停止すると思うのですが、そうはなりませんでした。
 Private Sub RefEdit1_Exit( ここで実行される物については何だかエラーしていても
 視されたり、Excel自体がダンマリになったりする様な感じがします。Excel 2003
 そんな事はないですかねぇ
 (karakan)

 RefEditのEventはあまり芳しくないかも...
 CommandButton を一つ追加してみてください。

 Private Sub CommandButton1_Click()
 Dim a As Range
 If Me.RefEdit1.Value = "" Then
     MsgBox "範囲が選択されていません"
     Exit Sub
 End If
 Set a = Range(Me.RefEdit1.Value)
 MsgBox a.Address
 End Sub
 (seiya)


 うまく動作しました。ありがとうございます。
 If Me.RefEdit1.Value = "" Then ですが、以前の物は Me. がありません。
 前の現象もこの事とは関係ないようです。どうも有り難う御座いました。
 (karakan)

コメント返信:

[ 一覧(最新更新順) ]


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