2017-03-07 60 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

它工作!非常感谢!! –