[VBA] 自動超連結 - FollowHyperlink - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 電 腦 軟 體 討 論 區 > -- OFFICE 相 關 軟 體 討 論 版


PCZONE 討論區



通知

-- OFFICE 相 關 軟 體 討 論 版 Word、Excel、PowerPoint、Access、Outlook、FrontPage或Office XP等的問題解答與經驗分享

Take it easy~
[VBA] 自動超連結 - FollowHyperlink
超連結一定要「插入超連結」嗎? 答案是:No.
如果你的 Excel 活頁簿裡含有網址、文件、檔案的路徑,為了方便連結,
你可能會使用「插入超連結」的功能。可是又不喜歡那藍字底線的格式出現在
活頁薄裡(雖然可以改...),而且按過以後還會變色...
 
以下就來說明如何使用事件巨集(註1),讓你只要 "選取" 含有超連結的儲存格,
就會自動以對應的程式開啟網頁或文件(假設網址或路徑是在E欄) --
 
一.在工作表名稱按右鍵 >> 選擇 [檢視程式碼]
 
 
 
二.在出現的 Visual Basic 編輯器視窗輸入以下內容:
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
1 Set a = Target.Cells(1): If a = "" Or a.Column <> 5 Then Exit Sub
2 ActiveWorkbook.FollowHyperlink a, , False
End Sub
 
程式說明
  1. 設定變數 a = 選取範圍的第一格(以免不小心選取到多格);
    若 a 為空白或 a 不在第 5 欄(即E欄)則結束巨集不執行以下動作。
  2. 以對應的程式(如 IE)開啟 a 所代表的網頁或文件,False 是指若 a 是
    網址且 IE 已開啟,則使用原 IE 視窗;改為 True 則會開啟新視窗。
你也可以開啟電腦裡的文件(如 HTM、DOC..)檔,並跳至文件裡的某書籤位置。
假設這些文件放在一個固定的資料夾裡,則儲存格裡的文件路徑可省略,只要檔名即可。
以 HTM (HTML) 檔為例,若要指定書籤位置,則在檔名後加上逗號書籤名稱(註2)。
巨集如下 --
 
Const path1 = "D:\HTML\Articles\"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
1 Set a = Target.Cells(1): If a = "" Or a.Column <> 5 Then Exit Sub
2 n = InStr(1, a, ","): b = ""
3 If n > 0 Then b = Right(a, Len(a) - n): a = Left(a, n - 1)
4 ActiveWorkbook.FollowHyperlink path1 & a & ".htm", b, True
End Sub
 
程式說明
  1. Const 是宣告(設定)常數,這裡設定常數 path1 為一固定的資料夾路徑。
  2. 設定變數 a = 選取範圍的第一格(以免不小心選取到多格);
    若 a 為空白或 a 不在第 5 欄(即E欄)則結束巨集不執行以下動作。
  3. 用函數 Instr 偵測 a 是否含有逗號,並將結果設為一變數 n ;
    設定變數 b 為空字串,代表書籤位置的起始值。
  4. 若 n > 0 表示 a 裡含有逗號( n 為逗號所在的位置),則將變數 b 設為
    逗號之後的字串,代表書籤位置,將變數 a 設為逗號之前的字串。
  5. 以對應的程式(IE)開啟 path1 路徑(資料夾)下的 a(HTM 檔),
    並跳至 b 所代表的書籤位置(若有的話);True: 以新視窗開啟。
 
註1:事件巨集可以控制一個物件(如活頁簿、工作表), 當發生選取、
   修改、開啟... 等等事件時, 所要做的事情/動作.
   上述巨集就是利用事件巨集: 當工作表上的任一格被選取時,
   引發了工作表的 SelectionChange 事件, 而自動執行這個
   巨集 -- 也就是說, 不須手動執行. 事件巨集必須位於物件模組之中.
 
註2:例如「abc,xyz」表示 abc.htm 裡名為 xyz 的書籤位置。當然該 HTM 檔裡
   必須要有 ... 的 HTML Tag。

回覆
會員

^^ 謝謝您~
又學了一手~!

回覆


類似的主題
主題 主題作者 討論版 回覆 最後發表
在EXCEL中如何判斷顏色取值?(VBA) TPBUNNY -- OFFICE 相 關 軟 體 討 論 版 7 2003-08-12 07:16 PM
[VBA]月曆控制項亂碼問題 leonchou -- OFFICE 相 關 軟 體 討 論 版 1 2003-04-27 03:50 PM
[VBA] 比對資料及設定格式 leonchou -- OFFICE 相 關 軟 體 討 論 版 1 2001-09-09 12:02 AM
[VBA] 巨集簡介 leonchou -- OFFICE 相 關 軟 體 討 論 版 0 2001-08-26 05:40 PM
[VBA] 自動巨集與活頁薄事件 leonchou -- OFFICE 相 關 軟 體 討 論 版 1 2001-08-22 08:32 PM






 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。