- 締切済み
ページ内ハイパーリンクの表示位置指定
エクセルで、ページの上部にメニュー・下部にメニューの説明を書き、上部メニューを押すと下部メニューに飛ぶようにハイパーリンクを作成しています。 メニュー欄をウィンドウ枠で固定していますが、リンク先へ飛ぶ際、そのリンク先のセルが常のハイパーリンクのすぐ下に表示されるようにしたいんです。 ふつうにハイパーリンクを貼ると、そのセルがページの一番下に表示されてしまいますよね?そうはしたくないんです。 マクロで、リンク先が常にページのトップに来るようなものがあると思いますが、ウィンドウ枠の固定をしているので、それは使えません。 説明が下手ですみませんが、どうすればいいか教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- misatoanna
- ベストアンサー率58% (528/896)
リンク先がページのトップに来るマクロは、ウィンドウ枠の固定をしているので使えないという意味が分かりませんが、次のような内容ではダメということなのでしょうか。 シートタブの右クリックメニューにある"コードの表示"から開くウィンドウに以下を記述し、そのウィンドウを閉じます。 ------ Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Application.Goto Selection, True End Sub
- keithin
- ベストアンサー率66% (5278/7941)
たとえばA1,B1,C1セルにハイパーリンクを埋めて、それぞれA5,A35,A65セルにジャンプするようにしてるとして。 方法1:ふつーにハイパーリンクでできること >上部メニューを押すと下部メニューに飛ぶようにハイパーリンクを作成しています A1のハイパーリンクのとび先をたとえばA5:E40などのように、B1のとび先をたとえばA35:E70、C1のとび先をたとえばA65:E100などのように大きなセル範囲に設定しておくと、目的のA5,A35,A65の各セルはメニューに近い位置に持ち上がって表示されます あなたの実際のエクセルに配置に従い、適切に範囲を調整します 方法2:マクロで行う方法 >ウィンドウ枠の固定をしているので、それは使えません。 ふつーにウィンドウ枠の固定をしていれば、別に問題なくマクロが使えます シート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_BeforeDoubleclick(byval Target as range, Cancel as boolean) if not application.intersect(target, range("A1")) is nothing then application.goto range("A5"), true cancel = true end if if not application.intersect(target, range("B1")) is nothing then application.goto range("A35"), true cancel = true end if if not application.intersect(target, range("C1")) is nothing then application.goto range("A65"), true cancel = true end if end sub ファイルメニューから終了してエクセルに戻る A1,B1,C1のハイパーリンクを取り消し、各セルをWクリックしてジャンプする。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>ふつうにハイパーリンクを貼ると、そのセルがページの一番下に表示されてしまいますよね?そうはしたくないんです。 ハイパーリンクのセル参照をたとえば「A60」セルにしているなら、「A60:A100」のように範囲指定して見てください。