[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ハイパーリンクできないマクロコード』(はんぱ者)
本を参考に見よう見まねでハイパーリンクのマクロコードを書いたのですが、
うまくいきません。どこがまずいのでしょうか、よろしくお願いします
入力原本シート(後でコピーして名前が変わる)のセル G15から
同じブック内の先頭シート”目次”のセルE1に飛びたいのです。
シートモジュールに下記の通り、書いたのですが
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveSheet.Hyperlinks.Add Anchor:=Range("G15"), _
Address:="", SubAddress:=Worksheets("目次") & "!E1", _
ScreenTip:=" 目次へ", TextToDisplay:="目次へ"
End Sub
< 使用 Excel:Excel2007、使用 OS:Windows8 >
良く見てないけど ここは SubAddress:=Worksheets("目次") & "!E1" こうでは? SubAddress:="目次!E1" (稲葉) 2015/02/27(金) 10:44
回答ありがとうございます。
アドバイス通り、
SubAddress:="目次!E1" としたのですが、うまくいきません。
(はんぱ者) 2015/02/27(金) 10:54
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ↓ Private Sub Worksheet_Change(ByVal Target As Range)
にするとか? (se_9) 2015/02/27(金) 11:11
ActiveSheet.Hyperlinks.Add は、ハイパーリンクを作成する命令。1回だけ動かせばよろしい。
Worksheet_FollowHyperlinkイベントは、ハイパーリンクをクリックした際に毎回発生。
ここにリンク作成のコーディングをしてはいけません。もし書くなら、他シートをActivateする命令を。
(ハイパーリンクの飛び先と違うところに飛ばしても意味ないか…)
ハイパーリンクを作成していない状態で、ハイパーリンクを押したときのコーディングをしても動きませんよね。
ハイパーリンクを押したときに、ハイパーリンクを作成するコードも、意味不明かと。
(???) 2015/02/27(金) 11:22
よく読んだら結構おかしいですね。
>入力原本シート(後でコピーして名前が変わる)のセル G15から >同じブック内の先頭シート”目次”のセルE1に飛びたいのです。 これならG15セルにHyperLinkを設定して、マクロ不要だと思うのですけど そうできない理由があるのでしょうね。 (稲葉) 2015/02/27(金) 11:53
今回、初めてエクセルでマクロを組み、いろんなことが自動でできるので、
楽しくなり、ついハイパーリンクもマクロでやろうと欲張り見当違いの
作業をやっていたようです。
稲葉様のご指摘のように、”G15セルにHyperLinkを設定して、マクロ不要 ”で
希望のことができました。今までこんな簡単に設定できるとは思いませんでした。
とんだお騒がせして申し訳ありません。
(はんぱ者) 2015/02/27(金) 12:39
マクロを使わない方法で、できました。ご心配頂きありがとうございました。
(はんぱ者) 2015/02/27(金) 12:45
楽しくなるのわかります! もしリンク先が例のように1件だけならそれでもいいのですが 例えば隣のシートにリンクしたいときに役に立ったりします。
例として 新しいブックを作ってください。 シートを適当に増やしてください。 適当なシートに A1を選択して、Ctrl+K リンク先をドキュメント内の適当なところ(Sheet1のA1)に設定し、 表示文字列を「前へ」 B1を同じ手順で、表示文字列を「次へ」
これをコピーしてすべてのシートに貼り付けてください。
Alt+F11を押してThisWorkBookモジュールに以下のコードを張り付けてください。
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) Select Case True Case Target.Name = "次へ" And Sh.Index < Sheets.Count Sheets(Sh.Index + 1).Select Case Target.Name = "前へ" And Sh.Index > 1 Sheets(Sh.Index - 1).Select Case Else Sh.Select End Select End Sub
次へを押すと、右隣のシート、前へを押すと左隣のシートに移動できます。
まあ、HyperLinkのイベント使わなくても、ダブルクリックや右クリックで代用できますが 直感でわかりやすいですよね。 (稲葉) 2015/02/27(金) 13:47
わかりやすく懇切丁寧な説明と、コード表記など具体的な事例を挙げていただき
ありがとうございます。
ハイパーリンクのコマンド Ctrl+K から ThisWorkBookモジュールの使い方まで
何から何まで参考になりました。
おっしゃるように、書かれたコードで左右自在にシート移動できました。
大変便利なので、これも利用させていただきます。
(はんぱ者) 2015/02/27(金) 15:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.