dポイントプレゼントキャンペーン実施中!

いつもお世話になっています。
EXCELに関する質問です。
シートにテキストBOXを作成します。
シートを上下にスクロールさせた時に、テキストBOXが常に画面の右上に表示されるようにするための
マクロを教えていただけませんでしょうか?
よろしくお願いします。

A 回答 (5件)

こんにちは。



スクロールイベント自体は、作らないとなかったと思いますが、通常、その後で、ワークシートに触らないということはありえませんので、セルをクリックすればよいと思います。

私は、以下のようなものを使っています。

テキストボックスは、図形描画で入れた、テキストボックスにさせていただきます。
違いましたら、適当に、オブジェクトを変更してください。


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WinTop As Single
Dim WinLeft As Single
  '上
  WinTop = ActiveWindow.VisibleRange.Top
  '真ん中
  WinLeft = ActiveWindow.VisibleRange.Left + (ActiveWindow.VisibleRange.Width / 2)
  With ActiveSheet.Shapes("テキスト 1")
    .Top = WinTop + 3
    .Left = WinLeft + 160  '数字で位置調整してください
  End With
End Sub
    • good
    • 0
この回答へのお礼

素早い回答有難うございます。
マクロ初心者同然なので教えて欲しいのですが
ALT+F11を押して[挿入(I)]-[標準モジュール(M)]をクリックして、
コードを貼り付ければよいのでしょうか?

お礼日時:2006/11/04 13:50

#4 のNoubleさんへ



>テキストボックスの設定で
>位置もサイズも変えないようにできなかったできたっけ?

それは、
オートシェイプ(等)の書式設定のプロパティに

#オブジェクトの位置関係で、
# セルに合わせて移動やサイズを変更しない

というものがあります。それは、オブジェクトとワークシートのWindow 絶対位置のことなのです。例えば、列を削除すると、オブジェクトがずれてしまう、というような問題があります。その場合、このオプションを使用します。

ご質問者さんは、Windows の位置関係を、見えている範囲に対して同じ位置にしたい、ということで、これは、FAQには至らないのですが、Webでオブジェクトが付いてくるようExcelで実現したい、という質問は、時々見かけます。私は、たぶん、それだろうと思って回答して、やはりそれだったわけです。
    • good
    • 0

テキストボックスの設定で


位置もサイズも変えないようにできなかったできたっけ?

今OS再構築中で確認できなくてすみません
    • good
    • 0

こんにちは。

#2 のWendy02です。

ワークシートの一番下にシートタブがあります。それを右クリックすると、コードの表示(V)があります。それをクリックすると、シートモジュールが開きますので、コードを貼り付けます。

そうしたら、Alt + Q で、Visual Basic Editor を閉じれば、登録完成です。一度、位置を確かめてみてください。調整は、WinTop, WinLeft の数字を変えればよいです。
    • good
    • 1
この回答へのお礼

ご丁寧に有難うございました。
まさに私が望んでいたものでした。
重ね重ね有難うございました。

お礼日時:2006/11/04 14:39

VBAでスクロールを検知するイベントがないので無理だと思います。



似たようなことなら画面をメニューの、「ウィンドウ」、「ウィンドウ枠の固定」をすることでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!