[[20050221114734]] 『ユーザーフォームの表示位置』(きんじ) ページの最後に飛ぶ

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

 

『ユーザーフォームの表示位置』(きんじ)

EXCEL 2000 OS WINDOWS XP

いつもありがとうございます。

VBAでアクティブセルのすぐ下にユーザーフォームを表示したいのですが・・・ 

            UserForm1.Top = ActiveCell.Offset(1).Top

で設定しても、うまくいきません。

RangeオブジェクトのTopプロパティがウィンドウの上端からでなく、行1からの
距離を表しているからだとは思うのですが・・・、

良い方法があれば教えて頂けないでしょうか。
宜しくお願い致します。


 マクロの実行方法はどのようにする予定ですか?
 ダブルクリックイベントなどであれば、
 マウスカーソルの位置を基準に表示させることは可能ですけど。 
  (INA)

INAさんありがとうございます。

マクロの実行はWorksheet_ChangeイベントでTargetセルを基準に、その下に
フォームを表示させたいのですが・・・

よろしくお願い致します(きんじ)


 ChangeイベントのTargetだと複数セルの可能性もありますが・・・
 でも、ちょっと厳しい・・・構想中・・・

   (INA)

INAさんありがとうございます。

そうですね。
複数セルの場合はMsgBoxでエラーメッセージだして、処理終了するようにします・・・

是非、よろしくお願いします!

(きんじ)


 変化したセルが、表示されているウィンドウに
 入っていない可能性もあると思いますけど・・

  (INA)


すみません・・・

今回作製したいシートで言えば、ある一定の範囲内のセルで生じた

場合のChangeイベントで発生するマクロを作成したいと思っています。

また、この範囲内のセルを参照している関数は存在せず、ウィンドウに

入っていないセルが変化する事は無いと考えているのですが・・・

(きんじ)


 ウィンドウは最大化している場合のみ対応。 

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim r As Range
    If Target.Count <> 1 Then Exit Sub

    Unload UserForm3
    Set r = Range(Cells(ActiveWindow.ScrollRow, ActiveWindow.ScrollColumn), Target)

        Y = r.Height
        X = r.Width
        UserForm3.Show 0
 End Sub

 '------------------

 Private Sub UserForm_Activate()
    AppActivate "Microsoft Excel"
 End Sub

 Private Sub UserForm_Initialize()
    Me.StartUpPosition = 0
    Me.Top = Y
    Me.Left = X
 End Sub

 '------------------
 Public X As Long
 Public Y As Long

   (INA)


INAさん本当にありがとうございます!

昨日今日とサイトを確認することが出来ず、お礼を申し上げるのが

遅くなってしまい、申し訳ございません。

これからも、是非是非よろしくお願いします!

(きんじ)


コメント返信:

[ 一覧(最新更新順) ]


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