- ベストアンサー
Excelでハイパーリンク先の表示する場所を指定することはできるでしょうか?
Excel2003を使っております。 sheet1とsheet2をハイパーリンクさせようとしております。 sheet1のリンク部分をクリックし、sheet2に飛ばした際にsheet2のリンクされた場所が画面の中央上部に来るように表示させたいのですが、どうしたらよいのでしょうか? 宜しくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使用してなら、 sheet2のシート名にマウスを当て 右クリックします。 右クリックメニューから コードの表示を選択します。 次に 下記コードをコピーして貼り付けます。 ここでは、セル AA1にリンクを張っているものとしています。 現在、私の環境では、15列までの表示になっていますので AA1を中央上部に、表示させるには、-8行する必要があります。 Private Sub Worksheet_Activate() Application.GoTo Reference:=Range("AA1").Offset(0, -8), Scroll:=True End Sub 注意: これは、シートに、1つだけ リンクを張る(ハイパーリンク) 場合のみ、有効です。 また、Range("A1").Offset(0, -8)とするとエラーになります。 なぜ、エラーになるかは、考えてください。 同じ シートに複数リンクを張る場合は、コードを編集する必要があります。 以上参考まで。
その他の回答 (6)
- Nayuta_X
- ベストアンサー率46% (240/511)
最近のものは、解りませんが 下記URLなどを参考にされたらどうでしょうか??。 インターネットに、接続出来ない環境下なら書籍を求める必要がありますが、そうでないのなら インターネットを活用すべきかと思いますよ。 私の持っているものは、(株)翔泳社出版の EXCEL97 VBA辞典で、プロパティをまとめたものです。(いつも手放せないです。) その他、参考書はありますが いづれも古いものばかりで現在は販売されて居ないでしょう。 下記サイトをじっくり見ると、参考になることが沢山あります。 *** Office製品の一般操作からVBAプログラミング、最新アプリケーションのレビューまで幅広く扱う、Excelを使い始めた新人も、自分のスキルの再確認にも、事務職から開発者まで必見の講座群があります。 参考 URL: http://www.moug.net/skillup/index.htm 日々のルーチン作業を簡単に、そして確実に行うために、ぜひ身につけたいExcelVBA。 『Excel VBA ビギナーズ バイブル』はマクロ記録やVBエディタの基本といった「はじめの一歩」から、中上級者のスキルアップにかかせない情報が満載の講座。
お礼
いつも大変丁寧にご回答頂きましてありがとうございます^0^ 常にネットにつながる環境にございますので、仰るとおりに ネットを活用した形で取り組んでみたいと思います。 ありがとうございました!
- Nayuta_X
- ベストアンサー率46% (240/511)
修正です。 errorCheck:の ":"が、抜けました。と言うより ここでは、 見えないだけかな??。 正しくは、下記です。 ここをcopyして ":"が、入っているか確認してください。 Private Sub Worksheet_Activate() Dim Add As String On Error GoTo errorCheck Add = ActiveCell.Address Application.GoTo Reference:=Range(Add).Offset(0, -8), Scroll:=True errorCheck: Resume Next End Sub
お礼
どうもありがとうございました^^/ ところで、マクロについて教えて頂きたいのですが、 マクロを使ったプログラム(?)を覚えてみたいと 思うのですが、参考となる良書がございましたら 教えて頂けないでしょうか? ○○出版社の「○○○」といったような。 勝手を申し上げてすみません。 お時間のある時にで結構ですので 宜しくお願いいたします。
- Nayuta_X
- ベストアンサー率46% (240/511)
修正です。 errorCheck:の ":"が、抜けました。 正しくは、下記です。 Private Sub Worksheet_Activate() Dim Add As String On Error GoTo errorCheck Add = ActiveCell.Address Application.GoTo Reference:=Range(Add).Offset(0, -8), Scroll:=True errorCheck: Resume Next End Sub
- Nayuta_X
- ベストアンサー率46% (240/511)
エラー処理をしています。 時間あったので、作ってしまいました。 Private Sub Worksheet_Activate() Dim Add As String On Error GoTo errorCheck Add = ActiveCell.Address Application.GoTo Reference:=Range(Add).Offset(0, -8), Scroll:=True errorCheck: Resume Next End Sub
- Nayuta_X
- ベストアンサー率46% (240/511)
同じ シートに複数リンクを張る場合は 下記コードに変更します。 Private Sub Worksheet_Activate() Dim Add As String Add = ActiveCell.Address Application.GoTo Reference:=Range(Add).Offset(0, -8), Scroll:=True End Sub
お礼
Nayuta_X 様 ありがとうございました! お忙しいところ恐れ入ります^^; とても助かりました^^/
- unoki
- ベストアンサー率48% (35/72)
リンク先にsheet2のセル(例えばA20など)を指定できますから、それを適切に指定すればOKでは?
お礼
unoki 様 ご回答ありがとうございました! sheetのセルを指定しただけですと、ポインタは移動するのですが 画面は動かずポインタだけが画面の端っこに表示されてしまうの です。 まだ、試しておりませんがマクロで試してみたいと思います。 お世話様でした!
お礼
Nayuta_X 様 ご回答ありがとうございました! やはりマクロを扱う必要があったのですね。 マクロはまだ不勉強でしたので、後学のためにも これを期に取り組んでみます^^ お世話様でした!