2017-03-07 49 views
3

就在前面,我不是真正的程序員。我在編輯工作,我們公司使用許多宏來簡化我們的流程和功能(大量findReplace,識別不一致的拼寫/間距約定等)。話雖如此,我已經開始拿起一些關於VBA編輯器如何在Microsoft Word上工作的東西。在Mac上從VBA宏啓動Google搜索

我們有一個Fetch宏(最初由Paul Beverley創建),它對所有使用PC的員工都非常有效。它需要文檔中突出顯示的術語,自動打開Web瀏覽器並執行谷歌搜索。但是,我們有幾位使用Office for Mac 2011的員工,他們無法使用與PC用戶相同的功能。我真的很想調整宏,這樣它就可以在Mac上工作,但我缺乏培訓嚴重阻礙了我。

這是我們公司使用PC原始腳本:(我可能會消除useExplorer功能)

Sub GoogleFetch() 
' Version 08.05.12 
' Launch selected text on Google 

useExplorer = False 

runBrowser = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 

mySite = "http://www.google.com/#q=" 

If Len(Selection) = 1 Then Selection.Words(1).Select 
mySubject = Trim(Selection) 
mySubject = Replace(mySubject, "&", "%26") 
mySubject = Replace(mySubject, " ", "+") 

If useExplorer = True Then 
    Set objIE = CreateObject("InternetExplorer.application") 
    objIE.Visible = True 
    objIE.navigate mySite & mySubject 
    Set objIE = Nothing 
Else 
    Shell (runBrowser & " " & mySite & mySubject) 'ERROR HERE 
End If 
End Sub 

我使用Macscript和的OpenURL得到解決的嘗試runBrowser問題(該錯誤彈出Shell ...行,因爲我無法獲得正確的路徑),但它導致更多的頭痛。

有沒有一些簡單的解決方法,我錯過了解決這個問題?預先感謝任何幫助!

回答

1

您可以使用#If ... #End If對兩個系統(Mac和PC)進行不同處理,請​​注意#開頭。這將運行在編譯時間並取決於系統,只留下合適的代碼執行運行時間。

您可以使用MacScript來很容易,因爲我發現這裏打開Safari:http://www.officeonemac.com/vba/open_url.html

所以您的代碼會是這個樣子:

Sub GoogleFetch() 
    ' Version 08.05.12 
    ' Launch selected text on Google 

    runBrowser = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 
    mysite = "http://www.google.com/#q=" 

    If Len(Selection) = 1 Then Selection.Words(1).Select 
    mysubject = Trim(Selection) 
    mysubject = Replace(mysubject, "&", "%26") 
    mysubject = Replace(mysubject, " ", "+") 

    #If Mac Then 
     OpenURL mysite & mysubject 
    #Else 
     Shell runBrowser & " " & mysite & mysubject 
    #End If 
End Sub 

Private Sub OpenURL(ByVal URL As String) 
    Dim s As String 
    s = "tell application ""Safari""" + vbCrLf + _ 
     "open location """ + URL + """" + vbCrLf + _ 
     "end tell" 
    MacScript s 
End Sub 
+0

謝謝,我會試試這個!我能否使用OpenURL命令將瀏覽器從Safari更改爲Chrome或Firefox? –

+0

@ felicityrose是的,只是改變它說'Safari'到'Chrome'的地方:)如果你發現這個有用,請注意它,如果它解決了你的問題,請將它標記爲已接受(左邊的灰色刻度標記)。謝謝! – CallumDA

+0

它工作!非常感謝!! –