• ベストアンサー

EXCELに関する質問

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

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 スクロールイベント自体は、作らないとなかったと思いますが、通常、その後で、ワークシートに触らないということはありえませんので、セルをクリックすればよいと思います。 私は、以下のようなものを使っています。 テキストボックスは、図形描画で入れた、テキストボックスにさせていただきます。 違いましたら、適当に、オブジェクトを変更してください。 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

u_nobu
質問者

お礼

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

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#4 のNoubleさんへ >テキストボックスの設定で >位置もサイズも変えないようにできなかったできたっけ? それは、 オートシェイプ(等)の書式設定のプロパティに #オブジェクトの位置関係で、 # セルに合わせて移動やサイズを変更しない というものがあります。それは、オブジェクトとワークシートのWindow 絶対位置のことなのです。例えば、列を削除すると、オブジェクトがずれてしまう、というような問題があります。その場合、このオプションを使用します。 ご質問者さんは、Windows の位置関係を、見えている範囲に対して同じ位置にしたい、ということで、これは、FAQには至らないのですが、Webでオブジェクトが付いてくるようExcelで実現したい、という質問は、時々見かけます。私は、たぶん、それだろうと思って回答して、やはりそれだったわけです。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

テキストボックスの設定で 位置もサイズも変えないようにできなかったできたっけ? 今OS再構築中で確認できなくてすみません

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。#2 のWendy02です。 ワークシートの一番下にシートタブがあります。それを右クリックすると、コードの表示(V)があります。それをクリックすると、シートモジュールが開きますので、コードを貼り付けます。 そうしたら、Alt + Q で、Visual Basic Editor を閉じれば、登録完成です。一度、位置を確かめてみてください。調整は、WinTop, WinLeft の数字を変えればよいです。

u_nobu
質問者

お礼

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

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

VBAでスクロールを検知するイベントがないので無理だと思います。 似たようなことなら画面をメニューの、「ウィンドウ」、「ウィンドウ枠の固定」をすることでしょうか。