2017-03-07 4 views
3

正面から見れば、私は真のプログラマーではありません。私は編集作業をしています。当社は多くのマクロを使用してプロセスと機能性を合理化しています(多くのfindReplace、一貫性のないスペル/スペーシング規則などの特定)。つまり、私はVBAエディタがMicrosoft Word上でどのように動作するかについていくつか拾い始めました。MacでVBAマクロからGoogle検索を起動

私たちには、PCを使用するすべての従業員に驚くほど効果的なフェッチマクロ(元々Paul Beverleyによって作成されたマクロ)があります。ドキュメント内で強調表示された用語を使用し、自動的にWebブラウザを開き、Google検索を実行します。ただし、Office 2011 for Mac 2011を使用する従業員がいて、PCユーザーと同じ機能を使用することはできません。私は本当にMacで動作するようにマクロを調整したいと思いますが、私のトレーニングの欠如は真剣に私を邪魔しています。ここで

は私達の会社はPCのために使用する元のスクリプトです:

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 

(私はおそらくuseExplorer機能を排除します。)

私は周りを取得するためにMacscriptとのOpenURLを使って試してみましたrunBrowserの問題(私は正しいパスを得ることができないので、エラーはShell ...行をポップアップします)が、頭痛の原因になります。

これを回避するためにいくつかの簡単な修正がありますか?助けをあらかじめありがとう!

答えて

1

あなたは初めに#に注意し、#If ... #End Ifを使用して、異なる二つのシステム(MacとPC)を扱うことができます。これはコンパイル時間で実行され、システムに応じて実行される適切なコードだけをの実行時間のままにします。

あなたは、私がここに見られるような非常に簡単にサファリを開くためにMacScriptを使用することができます。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

それは働いた!どうもありがとうございます!! –

関連する問題