2016-04-05 15 views
-2

私はうまく動作するvbaコードを持っていますが、vbaコードが行っているのと同じことを行うことができるバッチファイルと同じコードを作成したいと思います。vbaプログラムのバッチファイルコード

フォルダ内のすべてのファイルを指定されたメールアドレスに送信し、送信後にファイルを削除するコードを作成しました。

同じことを行うことができるバッチファイルを使用して同じことを誰でも作成できます。以下

はVBAコードである:

Private Sub Click() 
Dim mess_body As String, StrFile As String, StrPath As String 
Dim appOutLook As Outlook.Application 
Dim MailOutLook As Outlook.MailItem 

Set appOutLook = CreateObject("Outlook.Application") 
Set MailOutLook = appOutLook.CreateItem(olMailItem) 

'~~> Change path here 
StrPath = "\Project\New folder\New folder\" 

With MailOutLook 
    .BodyFormat = olFormatRichText 
    .To = "[email protected]" 
    .Subject = "test" 
    .HTMLBody = "test" 

    '~~> *.* for all files 
    StrFile = Dir(StrPath & "*.*") 

    Do While Len(StrFile) > 0 
     .Attachments.Add StrPath & StrFile 
     StrFile = Dir 
    Loop 

    '.DeleteAfterSubmit = True 
    .Send 
End With 

Kill "\Project\New folder\New folder\*.*" 

MsgBox "Reports have been sent", vbOKOnly 
End Sub 
+0

この(COMオートメーション)は、バッチファイルで実現することはできません。 .VBS VBScriptは最も近い選択肢です。 (またはJScript) –

+0

Ohh!バッチコマンドでもできると思っていました。 – Striker

+0

また、 "Kill" \ Project \ New folder \ New folder \ *。* "という構文を変更して、textbox1からパスを取得し、そのフォルダ内のすべてのファイルを削除できるようにすることもできます。コードから毎回パス。 – Striker

答えて

-1

Uフォルダ基準としてセル( "A1")の値を使用することができます。

Dim objFolder As Object 

Set appOutLook = CreateObject("Outlook.Application") 
Set MailOutLook = appOutLook.CreateItem(olMailItem) 

'~~> Change path here 

VAR1 = Range("A1").Value 
If VAR1 = False Then MsgBox "Cell is empty" 
If VAR1 = False Then Exit Sub 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFSO.GetFolder(VAR1) 
With MailOutLook 
    .BodyFormat = olFormatRichText 
    .To = "[email protected]" 
    .Subject = "test" 
    .HTMLBody = "test" 

'~~> *.* for all files 
StrFile = Dir(objFolder & "*.*") 

...

'.DeleteAfterSubmit = True 
.Send 
End With 
'delete files 
Kill objFolder & "\*.*" 
関連する問題