- ベストアンサー
EXCELに関する質問
いつもお世話になっています。 EXCELに関する質問です。 シートにテキストBOXを作成します。 シートを上下にスクロールさせた時に、テキストBOXが常に画面の右上に表示されるようにするための マクロを教えていただけませんでしょうか? よろしくお願いします。
- みんなの回答 (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
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
#4 のNoubleさんへ >テキストボックスの設定で >位置もサイズも変えないようにできなかったできたっけ? それは、 オートシェイプ(等)の書式設定のプロパティに #オブジェクトの位置関係で、 # セルに合わせて移動やサイズを変更しない というものがあります。それは、オブジェクトとワークシートのWindow 絶対位置のことなのです。例えば、列を削除すると、オブジェクトがずれてしまう、というような問題があります。その場合、このオプションを使用します。 ご質問者さんは、Windows の位置関係を、見えている範囲に対して同じ位置にしたい、ということで、これは、FAQには至らないのですが、Webでオブジェクトが付いてくるようExcelで実現したい、という質問は、時々見かけます。私は、たぶん、それだろうと思って回答して、やはりそれだったわけです。
- Nouble
- ベストアンサー率18% (330/1783)
テキストボックスの設定で 位置もサイズも変えないようにできなかったできたっけ? 今OS再構築中で確認できなくてすみません
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。#2 のWendy02です。 ワークシートの一番下にシートタブがあります。それを右クリックすると、コードの表示(V)があります。それをクリックすると、シートモジュールが開きますので、コードを貼り付けます。 そうしたら、Alt + Q で、Visual Basic Editor を閉じれば、登録完成です。一度、位置を確かめてみてください。調整は、WinTop, WinLeft の数字を変えればよいです。
お礼
ご丁寧に有難うございました。 まさに私が望んでいたものでした。 重ね重ね有難うございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
VBAでスクロールを検知するイベントがないので無理だと思います。 似たようなことなら画面をメニューの、「ウィンドウ」、「ウィンドウ枠の固定」をすることでしょうか。
お礼
素早い回答有難うございます。 マクロ初心者同然なので教えて欲しいのですが ALT+F11を押して[挿入(I)]-[標準モジュール(M)]をクリックして、 コードを貼り付ければよいのでしょうか?