| Home | Forums | Reviews | Articles | Register |
![]() |
| Thread Tools | Rate Thread |
|
|
|
| |
|
Michael Bauer [MVP - Outlook]
Guest
Posts: n/a
|
objAttachments is already a collection of attachments. There's no need to create an array for it, instead of a loop through the array just loop through the collection: Dim Att as Outlook.Attachment For Each Att in objAttachments ' do anything here with the attachment Next -- Best regards Michael Bauer - MVP Outlook : Outlook Categories? Category Manager Is Your Tool : VBOffice Reporter for Data Analysis & Reporting : <http://www.vboffice.net/product.html?pub=6&lang=en> Am Mon, 16 Nov 2009 22:19:04 -0800 schrieb hlock: > I am having to recreate lotus notes code into outlook code and am finding it > very difficult since I don't know coding very well. It's taken me a long > time just to get where I am using snippets from what I have found from > others. I know that what I want to do is for each attachment in a single > email, I want to save it off, "remember" the path and filename and create a > description. Then I need to use the path and filename and the description > later during the creation of an .ini file. However, I'm not doing it > correctly. I thought I should be using the string split(), but I am getting > an error msg. I have indicated the error msg below. Since our IT dept > doesn't have a lot of time to work on this, I'm trying to do it myself (lol!) > Any advice would be much appreciate. If you would like the lotus notes > script to be posted to see what was originally intended, let me know as I am > not completely done with this yet. > I am posting the whole code as I know that it is fraught with errors. > However, it's a work in progress. > Option Explicit > Public Sub initialize() > Dim fso > Dim fil > Dim objapp As Outlook.Application > Dim ns As Outlook.NameSpace > Dim ext As String > Dim tempfile As String > Dim tempdir As String > Dim path As String > Dim del As String > Dim app As String > Dim objitem As Object > Dim strsubject As String > Dim filename As String > Dim objAttachments As Outlook.attachments > Dim i As Long > Dim lngCount As Long > Dim strfile As String > Dim strsender As String > Dim strrecipient As String > Dim strCC As String > Dim strBCC As String > Dim intsent As Date > Dim strbody As String > Set fso = CreateObject("Scripting.FileSystemObject") > Set ns = GetNamespace("MAPI") > Set objapp = CreateObject("Outlook.application") > Select Case TypeName(objapp.ActiveWindow) > Case "Explorer" > Set objitem = objapp.ActiveExplorer.Selection.item(1) > Case "Inspector" > Set objitem = objapp.ActiveInspector.CurrentItem > Case Else > ' > End Select > tempdir = ("c:\temp\outlookimport") > CheckFolder > strsubject = objitem.Subject > strsender = objitem.SenderName > strrecipient = objitem.To > strCC = objitem.CC > strBCC = objitem.BCC > intsent = objitem.SentOn > strbody = objitem.Body > filename = StripIllegalChar(strsubject) > If fso.GetExtensionName(filename) = "" Then > filename = filename & ".rtf" > End If > ext = fso.GetExtensionName(filename) > path = fso.BuildPath(tempdir, filename) > objitem.SaveAs path, olRTF > Dim attachments() As String > Dim attachdescs() As String > Set objAttachments = objitem.attachments > attachments = Split(objAttachments, ",") 'getting error msg here invalid > procedure call or argument > attachdescs = Split(strsubject, ",") 'getting error msg here invalid > procedure call or argument > lngCount = objAttachments.Count > If lngCount > 0 Then > For i = lngCount To 1 Step -1 > ReDim Preserve attachments(UBound(attachments) + 1) > ReDim Preserve attachdescs(UBound(attachdescs) + 1) > strfile = objAttachments.item(i).filename > strfile = Replace(strfile, " ", "_") > strfile = tempdir & "\" & strfile > objAttachments.item(i).SaveAsFile strfile > Next i > End If > Dim towfile As String > Dim fileNum As String > towfile = tempdir & "\tower.ini" > fileNum = FreeFile > Open towfile For Output As fileNum > Open towfile For Output As fileNum > Print #fileNum, "[Group1]" > Print #fileNum, "Desc=" & filename > Print #fileNum, "MultiPage=Yes" > Print #fileNum, "DeleteWhen=Always" > Print #fileNum, "DefaultApp=email" > Print #fileNum, "ShowDesc=Yes" > Print #fileNum, "EmailImport=Yes" > Print #fileNum, "MAIL_FROM=" & strsender > Print #fileNum, "MAIL_TO=" & strrecipient ' > Adding the indexing info here > If strCC > "" Then > Print #fileNum, "MAIL_CC=" & strCC > Else > Print #fileNum, "MAIL_CC=NULL " > End If > If strBCC > "" Then > Print #fileNum, "MAIL_BCC=" & strBCC > Else > Print #fileNum, "MAIL_BCC=NULL" > End If > Print #fileNum, "MAIL_DATE=" & intsent > If filename > "" Then > Print #fileNum, "MAIL_SUBJECT=" & filename > Else > Print #fileNum, "MAIL_SUBJECT=NULL" > End If > If lngCount = 0 Then > Print #fileNum, "NumberOfFiles=1" > Print #fileNum, "File1=" & filename > Print #fileNum, "Desc1=" & strsubject > Else > Print #fileNum, "NumberOfFiles=" & lngCount + 1 > Print #fileNum, "File1=" & filename > Print #fileNum, "Desc1=" & strsubject > Dim z As Integer > For z = 1 To lngCount > Print #fileNum, "File" & (z + 1) & "=" & attachments(z) > 'File2=C:\TMP\c2.bmp > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'This is > the message body > Next z > End If > Print #fileNum, "[General]" > Print #fileNum, "NumberofGroups=1" > Close fileNum > > 'Call IDMImport(towfile) > 'fso.DeleteFile path, True > 'Set fso = Nothing > End Sub > Function StripIllegalChar(StrInput) > Dim RegX As Object > Set RegX = CreateObject("vbscript.regexp") > RegX.Pattern = "[\" & Chr(34) & > "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]" > RegX.IgnoreCase = True > RegX.Global = True > StripIllegalChar = RegX.Replace(StrInput, "") > ExitFunction: > Set RegX = Nothing > End Function > Sub CheckFolder() > Dim fso > Dim fol As String > fol = ("c:\temp\outlookimport") > Set fso = CreateObject("Scripting.FileSystemObject") > If Not fso.FolderExists(fol) Then > fso.CreateFolder (fol) > End If > End Sub |
|
||
|
||||
|
|
|
| |
|
hlock
Guest
Posts: n/a
|
Thank you. I apologize for the double post. For some reason my postings are
not showing up for me until the next day. Nontheless, where I run into problems is further down in creating the tower.ini file. Dim z As Integer For z = 1 To lngCount Print #fileNum, "File" & (z + 1) & "=" & attachments (z) 'File2=C:\TMP\c2.bmp Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'description Next z Here we have to run through the attachments and list them along with a description until all attachments have been listed. For example, there are 3 attachments (note the first file is the email) - AdjusterReport.pdf, AdjusterPhotos.pdf, and Litigation.pdf. In creating the ini file, the attachments need to be listed as follows: File2=C:\temp\outlookimport\AdjusterReport.pdf Desc2=This is the attachment#1 File3=C:\temp\outlookimport\AdjusterPhotos.pdf Desc3=This is the attachment#2 File4=C:\temp\outlookimport\Litigation.pdf Desc4=This is the attachment#3 How would I accomplish this? "Michael Bauer [MVP - Outlook]" wrote: > > > objAttachments is already a collection of attachments. There's no need to > create an array for it, instead of a loop through the array just loop > through the collection: > > Dim Att as Outlook.Attachment > For Each Att in objAttachments > ' do anything here with the attachment > Next > > -- > Best regards > Michael Bauer - MVP Outlook > > : Outlook Categories? Category Manager Is Your Tool > : VBOffice Reporter for Data Analysis & Reporting > : <http://www.vboffice.net/product.html?pub=6&lang=en> > > > Am Mon, 16 Nov 2009 22:19:04 -0800 schrieb hlock: > > > I am having to recreate lotus notes code into outlook code and am finding > it > > very difficult since I don't know coding very well. It's taken me a long > > time just to get where I am using snippets from what I have found from > > others. I know that what I want to do is for each attachment in a single > > email, I want to save it off, "remember" the path and filename and create > a > > description. Then I need to use the path and filename and the description > > later during the creation of an .ini file. However, I'm not doing it > > correctly. I thought I should be using the string split(), but I am > getting > > an error msg. I have indicated the error msg below. Since our IT dept > > doesn't have a lot of time to work on this, I'm trying to do it myself > (lol!) > > Any advice would be much appreciate. If you would like the lotus notes > > script to be posted to see what was originally intended, let me know as I > am > > not completely done with this yet. > > I am posting the whole code as I know that it is fraught with errors. > > However, it's a work in progress. > > Option Explicit > > Public Sub initialize() > > Dim fso > > Dim fil > > Dim objapp As Outlook.Application > > Dim ns As Outlook.NameSpace > > Dim ext As String > > Dim tempfile As String > > Dim tempdir As String > > Dim path As String > > Dim del As String > > Dim app As String > > Dim objitem As Object > > Dim strsubject As String > > Dim filename As String > > Dim objAttachments As Outlook.attachments > > Dim i As Long > > Dim lngCount As Long > > Dim strfile As String > > Dim strsender As String > > Dim strrecipient As String > > Dim strCC As String > > Dim strBCC As String > > Dim intsent As Date > > Dim strbody As String > > Set fso = CreateObject("Scripting.FileSystemObject") > > Set ns = GetNamespace("MAPI") > > Set objapp = CreateObject("Outlook.application") > > Select Case TypeName(objapp.ActiveWindow) > > Case "Explorer" > > Set objitem = objapp.ActiveExplorer.Selection.item(1) > > Case "Inspector" > > Set objitem = objapp.ActiveInspector.CurrentItem > > Case Else > > ' > > End Select > > tempdir = ("c:\temp\outlookimport") > > CheckFolder > > strsubject = objitem.Subject > > strsender = objitem.SenderName > > strrecipient = objitem.To > > strCC = objitem.CC > > strBCC = objitem.BCC > > intsent = objitem.SentOn > > strbody = objitem.Body > > filename = StripIllegalChar(strsubject) > > If fso.GetExtensionName(filename) = "" Then > > filename = filename & ".rtf" > > End If > > ext = fso.GetExtensionName(filename) > > path = fso.BuildPath(tempdir, filename) > > objitem.SaveAs path, olRTF > > Dim attachments() As String > > Dim attachdescs() As String > > Set objAttachments = objitem.attachments > > attachments = Split(objAttachments, ",") 'getting error msg here > invalid > > procedure call or argument > > attachdescs = Split(strsubject, ",") 'getting error msg here > invalid > > procedure call or argument > > lngCount = objAttachments.Count > > If lngCount > 0 Then > > For i = lngCount To 1 Step -1 > > ReDim Preserve attachments(UBound(attachments) + 1) > > ReDim Preserve attachdescs(UBound(attachdescs) + 1) > > strfile = objAttachments.item(i).filename > > strfile = Replace(strfile, " ", "_") > > strfile = tempdir & "\" & strfile > > objAttachments.item(i).SaveAsFile strfile > > Next i > > End If > > Dim towfile As String > > Dim fileNum As String > > towfile = tempdir & "\tower.ini" > > fileNum = FreeFile > > Open towfile For Output As fileNum > > Open towfile For Output As fileNum > > Print #fileNum, "[Group1]" > > Print #fileNum, "Desc=" & filename > > Print #fileNum, "MultiPage=Yes" > > Print #fileNum, "DeleteWhen=Always" > > Print #fileNum, "DefaultApp=email" > > Print #fileNum, "ShowDesc=Yes" > > Print #fileNum, "EmailImport=Yes" > > Print #fileNum, "MAIL_FROM=" & strsender > > Print #fileNum, "MAIL_TO=" & strrecipient ' > > Adding the indexing info here > > If strCC > "" Then > > Print #fileNum, "MAIL_CC=" & strCC > > Else > > Print #fileNum, "MAIL_CC=NULL " > > End If > > If strBCC > "" Then > > Print #fileNum, "MAIL_BCC=" & strBCC > > Else > > Print #fileNum, "MAIL_BCC=NULL" > > End If > > Print #fileNum, "MAIL_DATE=" & intsent > > If filename > "" Then > > Print #fileNum, "MAIL_SUBJECT=" & filename > > Else > > Print #fileNum, "MAIL_SUBJECT=NULL" > > End If > > If lngCount = 0 Then > > Print #fileNum, "NumberOfFiles=1" > > Print #fileNum, "File1=" & filename > > Print #fileNum, "Desc1=" & strsubject > > Else > > Print #fileNum, "NumberOfFiles=" & lngCount + 1 > > Print #fileNum, "File1=" & filename > > Print #fileNum, "Desc1=" & strsubject > > Dim z As Integer > > For z = 1 To lngCount > > Print #fileNum, "File" & (z + 1) & "=" & attachments(z) > > 'File2=C:\TMP\c2.bmp > > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'This > is > > the message body > > Next z > > End If > > Print #fileNum, "[General]" > > Print #fileNum, "NumberofGroups=1" > > Close fileNum > > > > 'Call IDMImport(towfile) > > 'fso.DeleteFile path, True > > 'Set fso = Nothing > > End Sub > > Function StripIllegalChar(StrInput) > > Dim RegX As Object > > Set RegX = CreateObject("vbscript.regexp") > > RegX.Pattern = "[\" & Chr(34) & > > "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]" > > RegX.IgnoreCase = True > > RegX.Global = True > > StripIllegalChar = RegX.Replace(StrInput, "") > > ExitFunction: > > Set RegX = Nothing > > End Function > > Sub CheckFolder() > > Dim fso > > Dim fol As String > > fol = ("c:\temp\outlookimport") > > Set fso = CreateObject("Scripting.FileSystemObject") > > If Not fso.FolderExists(fol) Then > > fso.CreateFolder (fol) > > End If > > End Sub > . > |
|
||
|
||||
|
Michael Bauer [MVP - Outlook]
Guest
Posts: n/a
|
Here's an example for how to write a file: http://www.vboffice.net/sample.html?...4&cmd=showitem Attachments(z) returns an Attachment object. Please see the object browser (f2) for what properties are available: switch from <All libraries> to Outlook, and left hand select 'Attachment'. Before you can read the attachment's path, you need to save it as a file. -- Best regards Michael Bauer - MVP Outlook : Outlook Categories? Category Manager Is Your Tool : VBOffice Reporter for Data Analysis & Reporting : <http://www.vboffice.net/product.html?pub=6&lang=en> Am Tue, 17 Nov 2009 07:36:01 -0800 schrieb hlock: > Thank you. I apologize for the double post. For some reason my postings are > not showing up for me until the next day. Nontheless, where I run into > problems is further down in creating the tower.ini file. > > Dim z As Integer > For z = 1 To lngCount > Print #fileNum, "File" & (z + 1) & "=" & attachments (z) > 'File2=C:\TMP\c2.bmp > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'description > Next z > > Here we have to run through the attachments and list them along with a > description until all attachments have been listed. For example, there are 3 > attachments (note the first file is the email) - AdjusterReport.pdf, > AdjusterPhotos.pdf, and Litigation.pdf. In creating the ini file, the > attachments need to be listed as follows: > > File2=C:\temp\outlookimport\AdjusterReport.pdf > Desc2=This is the attachment#1 > > File3=C:\temp\outlookimport\AdjusterPhotos.pdf > Desc3=This is the attachment#2 > > File4=C:\temp\outlookimport\Litigation.pdf > Desc4=This is the attachment#3 > > How would I accomplish this? > > "Michael Bauer [MVP - Outlook]" wrote: > >> >> >> objAttachments is already a collection of attachments. There's no need to >> create an array for it, instead of a loop through the array just loop >> through the collection: >> >> Dim Att as Outlook.Attachment >> For Each Att in objAttachments >> ' do anything here with the attachment >> Next >> >> -- >> Best regards >> Michael Bauer - MVP Outlook >> >> : Outlook Categories? Category Manager Is Your Tool >> : VBOffice Reporter for Data Analysis & Reporting >> : <http://www.vboffice.net/product.html?pub=6&lang=en> >> >> >> Am Mon, 16 Nov 2009 22:19:04 -0800 schrieb hlock: >> >>> I am having to recreate lotus notes code into outlook code and am finding >> it >>> very difficult since I don't know coding very well. It's taken me a long >>> time just to get where I am using snippets from what I have found from >>> others. I know that what I want to do is for each attachment in a single >>> email, I want to save it off, "remember" the path and filename and create >> a >>> description. Then I need to use the path and filename and the description >>> later during the creation of an .ini file. However, I'm not doing it >>> correctly. I thought I should be using the string split(), but I am >> getting >>> an error msg. I have indicated the error msg below. Since our IT dept >>> doesn't have a lot of time to work on this, I'm trying to do it myself >> (lol!) >>> Any advice would be much appreciate. If you would like the lotus notes >>> script to be posted to see what was originally intended, let me know as I >> am >>> not completely done with this yet. >>> I am posting the whole code as I know that it is fraught with errors. >>> However, it's a work in progress. >>> Option Explicit >>> Public Sub initialize() >>> Dim fso >>> Dim fil >>> Dim objapp As Outlook.Application >>> Dim ns As Outlook.NameSpace >>> Dim ext As String >>> Dim tempfile As String >>> Dim tempdir As String >>> Dim path As String >>> Dim del As String >>> Dim app As String >>> Dim objitem As Object >>> Dim strsubject As String >>> Dim filename As String >>> Dim objAttachments As Outlook.attachments >>> Dim i As Long >>> Dim lngCount As Long >>> Dim strfile As String >>> Dim strsender As String >>> Dim strrecipient As String >>> Dim strCC As String >>> Dim strBCC As String >>> Dim intsent As Date >>> Dim strbody As String >>> Set fso = CreateObject("Scripting.FileSystemObject") >>> Set ns = GetNamespace("MAPI") >>> Set objapp = CreateObject("Outlook.application") >>> Select Case TypeName(objapp.ActiveWindow) >>> Case "Explorer" >>> Set objitem = objapp.ActiveExplorer.Selection.item(1) >>> Case "Inspector" >>> Set objitem = objapp.ActiveInspector.CurrentItem >>> Case Else >>> ' >>> End Select >>> tempdir = ("c:\temp\outlookimport") >>> CheckFolder >>> strsubject = objitem.Subject >>> strsender = objitem.SenderName >>> strrecipient = objitem.To >>> strCC = objitem.CC >>> strBCC = objitem.BCC >>> intsent = objitem.SentOn >>> strbody = objitem.Body >>> filename = StripIllegalChar(strsubject) >>> If fso.GetExtensionName(filename) = "" Then >>> filename = filename & ".rtf" >>> End If >>> ext = fso.GetExtensionName(filename) >>> path = fso.BuildPath(tempdir, filename) >>> objitem.SaveAs path, olRTF >>> Dim attachments() As String >>> Dim attachdescs() As String >>> Set objAttachments = objitem.attachments >>> attachments = Split(objAttachments, ",") 'getting error msg here >> invalid >>> procedure call or argument >>> attachdescs = Split(strsubject, ",") 'getting error msg here >> invalid >>> procedure call or argument >>> lngCount = objAttachments.Count >>> If lngCount > 0 Then >>> For i = lngCount To 1 Step -1 >>> ReDim Preserve attachments(UBound(attachments) + 1) >>> ReDim Preserve attachdescs(UBound(attachdescs) + 1) >>> strfile = objAttachments.item(i).filename >>> strfile = Replace(strfile, " ", "_") >>> strfile = tempdir & "\" & strfile >>> objAttachments.item(i).SaveAsFile strfile >>> Next i >>> End If >>> Dim towfile As String >>> Dim fileNum As String >>> towfile = tempdir & "\tower.ini" >>> fileNum = FreeFile >>> Open towfile For Output As fileNum >>> Open towfile For Output As fileNum >>> Print #fileNum, "[Group1]" >>> Print #fileNum, "Desc=" & filename >>> Print #fileNum, "MultiPage=Yes" >>> Print #fileNum, "DeleteWhen=Always" >>> Print #fileNum, "DefaultApp=email" >>> Print #fileNum, "ShowDesc=Yes" >>> Print #fileNum, "EmailImport=Yes" >>> Print #fileNum, "MAIL_FROM=" & strsender >>> Print #fileNum, "MAIL_TO=" & strrecipient ' >>> Adding the indexing info here >>> If strCC > "" Then >>> Print #fileNum, "MAIL_CC=" & strCC >>> Else >>> Print #fileNum, "MAIL_CC=NULL " >>> End If >>> If strBCC > "" Then >>> Print #fileNum, "MAIL_BCC=" & strBCC >>> Else >>> Print #fileNum, "MAIL_BCC=NULL" >>> End If >>> Print #fileNum, "MAIL_DATE=" & intsent >>> If filename > "" Then >>> Print #fileNum, "MAIL_SUBJECT=" & filename >>> Else >>> Print #fileNum, "MAIL_SUBJECT=NULL" >>> End If >>> If lngCount = 0 Then >>> Print #fileNum, "NumberOfFiles=1" >>> Print #fileNum, "File1=" & filename >>> Print #fileNum, "Desc1=" & strsubject >>> Else >>> Print #fileNum, "NumberOfFiles=" & lngCount + 1 >>> Print #fileNum, "File1=" & filename >>> Print #fileNum, "Desc1=" & strsubject >>> Dim z As Integer >>> For z = 1 To lngCount >>> Print #fileNum, "File" & (z + 1) & "=" & attachments(z) >>> 'File2=C:\TMP\c2.bmp >>> Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'This >> is >>> the message body >>> Next z >>> End If >>> Print #fileNum, "[General]" >>> Print #fileNum, "NumberofGroups=1" >>> Close fileNum >>> >>> 'Call IDMImport(towfile) >>> 'fso.DeleteFile path, True >>> 'Set fso = Nothing >>> End Sub >>> Function StripIllegalChar(StrInput) >>> Dim RegX As Object >>> Set RegX = CreateObject("vbscript.regexp") >>> RegX.Pattern = "[\" & Chr(34) & >>> "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]" >>> RegX.IgnoreCase = True >>> RegX.Global = True >>> StripIllegalChar = RegX.Replace(StrInput, "") >>> ExitFunction: >>> Set RegX = Nothing >>> End Function >>> Sub CheckFolder() >>> Dim fso >>> Dim fol As String >>> fol = ("c:\temp\outlookimport") >>> Set fso = CreateObject("Scripting.FileSystemObject") >>> If Not fso.FolderExists(fol) Then >>> fso.CreateFolder (fol) >>> End If >>> End Sub >> . >> |
|
||
|
||||
|
hlock
Guest
Posts: n/a
|
I'm making progress, but my (z) numbers aren't increasing with the addition
of attachments: Dim att As Outlook.Attachment Dim z As Integer Dim attfile As String 'For z = 1 To lngCount z = 1 For Each att In objAttachments attfile = att.filename attfile = Replace(attfile, " ", "_") attfile = tempdir & "\" & attfile Print #fileNum, "File" & (z + 1) & "=" & attfile Print #fileNum, "Desc" & (z + 1) & "=" & "This is the attachment#" & (z) Next att I'm getting: File2=C:\temp\outlookimport\AdjusterReport.pdf Desc2=This is the attachment#1 File2=C:\temp\outlookimport\AdjusterPhotos.pdf Desc2=This is the attachment#1 How do I get the (z) numbers to increase? Thanks!!! "hlock" wrote: > Thank you. I apologize for the double post. For some reason my postings are > not showing up for me until the next day. Nontheless, where I run into > problems is further down in creating the tower.ini file. > > Dim z As Integer > For z = 1 To lngCount > Print #fileNum, "File" & (z + 1) & "=" & attachments (z) > 'File2=C:\TMP\c2.bmp > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'description > Next z > > Here we have to run through the attachments and list them along with a > description until all attachments have been listed. For example, there are 3 > attachments (note the first file is the email) - AdjusterReport.pdf, > AdjusterPhotos.pdf, and Litigation.pdf. In creating the ini file, the > attachments need to be listed as follows: > > File2=C:\temp\outlookimport\AdjusterReport.pdf > Desc2=This is the attachment#1 > > File3=C:\temp\outlookimport\AdjusterPhotos.pdf > Desc3=This is the attachment#2 > > File4=C:\temp\outlookimport\Litigation.pdf > Desc4=This is the attachment#3 > > How would I accomplish this? > > "Michael Bauer [MVP - Outlook]" wrote: > > > > > > > objAttachments is already a collection of attachments. There's no need to > > create an array for it, instead of a loop through the array just loop > > through the collection: > > > > Dim Att as Outlook.Attachment > > For Each Att in objAttachments > > ' do anything here with the attachment > > Next > > > > -- > > Best regards > > Michael Bauer - MVP Outlook > > > > : Outlook Categories? Category Manager Is Your Tool > > : VBOffice Reporter for Data Analysis & Reporting > > : <http://www.vboffice.net/product.html?pub=6&lang=en> > > > > > > Am Mon, 16 Nov 2009 22:19:04 -0800 schrieb hlock: > > > > > I am having to recreate lotus notes code into outlook code and am finding > > it > > > very difficult since I don't know coding very well. It's taken me a long > > > time just to get where I am using snippets from what I have found from > > > others. I know that what I want to do is for each attachment in a single > > > email, I want to save it off, "remember" the path and filename and create > > a > > > description. Then I need to use the path and filename and the description > > > later during the creation of an .ini file. However, I'm not doing it > > > correctly. I thought I should be using the string split(), but I am > > getting > > > an error msg. I have indicated the error msg below. Since our IT dept > > > doesn't have a lot of time to work on this, I'm trying to do it myself > > (lol!) > > > Any advice would be much appreciate. If you would like the lotus notes > > > script to be posted to see what was originally intended, let me know as I > > am > > > not completely done with this yet. > > > I am posting the whole code as I know that it is fraught with errors. > > > However, it's a work in progress. > > > Option Explicit > > > Public Sub initialize() > > > Dim fso > > > Dim fil > > > Dim objapp As Outlook.Application > > > Dim ns As Outlook.NameSpace > > > Dim ext As String > > > Dim tempfile As String > > > Dim tempdir As String > > > Dim path As String > > > Dim del As String > > > Dim app As String > > > Dim objitem As Object > > > Dim strsubject As String > > > Dim filename As String > > > Dim objAttachments As Outlook.attachments > > > Dim i As Long > > > Dim lngCount As Long > > > Dim strfile As String > > > Dim strsender As String > > > Dim strrecipient As String > > > Dim strCC As String > > > Dim strBCC As String > > > Dim intsent As Date > > > Dim strbody As String > > > Set fso = CreateObject("Scripting.FileSystemObject") > > > Set ns = GetNamespace("MAPI") > > > Set objapp = CreateObject("Outlook.application") > > > Select Case TypeName(objapp.ActiveWindow) > > > Case "Explorer" > > > Set objitem = objapp.ActiveExplorer.Selection.item(1) > > > Case "Inspector" > > > Set objitem = objapp.ActiveInspector.CurrentItem > > > Case Else > > > ' > > > End Select > > > tempdir = ("c:\temp\outlookimport") > > > CheckFolder > > > strsubject = objitem.Subject > > > strsender = objitem.SenderName > > > strrecipient = objitem.To > > > strCC = objitem.CC > > > strBCC = objitem.BCC > > > intsent = objitem.SentOn > > > strbody = objitem.Body > > > filename = StripIllegalChar(strsubject) > > > If fso.GetExtensionName(filename) = "" Then > > > filename = filename & ".rtf" > > > End If > > > ext = fso.GetExtensionName(filename) > > > path = fso.BuildPath(tempdir, filename) > > > objitem.SaveAs path, olRTF > > > Dim attachments() As String > > > Dim attachdescs() As String > > > Set objAttachments = objitem.attachments > > > attachments = Split(objAttachments, ",") 'getting error msg here > > invalid > > > procedure call or argument > > > attachdescs = Split(strsubject, ",") 'getting error msg here > > invalid > > > procedure call or argument > > > lngCount = objAttachments.Count > > > If lngCount > 0 Then > > > For i = lngCount To 1 Step -1 > > > ReDim Preserve attachments(UBound(attachments) + 1) > > > ReDim Preserve attachdescs(UBound(attachdescs) + 1) > > > strfile = objAttachments.item(i).filename > > > strfile = Replace(strfile, " ", "_") > > > strfile = tempdir & "\" & strfile > > > objAttachments.item(i).SaveAsFile strfile > > > Next i > > > End If > > > Dim towfile As String > > > Dim fileNum As String > > > towfile = tempdir & "\tower.ini" > > > fileNum = FreeFile > > > Open towfile For Output As fileNum > > > Open towfile For Output As fileNum > > > Print #fileNum, "[Group1]" > > > Print #fileNum, "Desc=" & filename > > > Print #fileNum, "MultiPage=Yes" > > > Print #fileNum, "DeleteWhen=Always" > > > Print #fileNum, "DefaultApp=email" > > > Print #fileNum, "ShowDesc=Yes" > > > Print #fileNum, "EmailImport=Yes" > > > Print #fileNum, "MAIL_FROM=" & strsender > > > Print #fileNum, "MAIL_TO=" & strrecipient ' > > > Adding the indexing info here > > > If strCC > "" Then > > > Print #fileNum, "MAIL_CC=" & strCC > > > Else > > > Print #fileNum, "MAIL_CC=NULL " > > > End If > > > If strBCC > "" Then > > > Print #fileNum, "MAIL_BCC=" & strBCC > > > Else > > > Print #fileNum, "MAIL_BCC=NULL" > > > End If > > > Print #fileNum, "MAIL_DATE=" & intsent > > > If filename > "" Then > > > Print #fileNum, "MAIL_SUBJECT=" & filename > > > Else > > > Print #fileNum, "MAIL_SUBJECT=NULL" > > > End If > > > If lngCount = 0 Then > > > Print #fileNum, "NumberOfFiles=1" > > > Print #fileNum, "File1=" & filename > > > Print #fileNum, "Desc1=" & strsubject > > > Else > > > Print #fileNum, "NumberOfFiles=" & lngCount + 1 > > > Print #fileNum, "File1=" & filename > > > Print #fileNum, "Desc1=" & strsubject > > > Dim z As Integer > > > For z = 1 To lngCount > > > Print #fileNum, "File" & (z + 1) & "=" & attachments(z) > > > 'File2=C:\TMP\c2.bmp > > > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'This > > is > > > the message body > > > Next z > > > End If > > > Print #fileNum, "[General]" > > > Print #fileNum, "NumberofGroups=1" > > > Close fileNum > > > > > > 'Call IDMImport(towfile) > > > 'fso.DeleteFile path, True > > > 'Set fso = Nothing > > > End Sub > > > Function StripIllegalChar(StrInput) > > > Dim RegX As Object > > > Set RegX = CreateObject("vbscript.regexp") > > > RegX.Pattern = "[\" & Chr(34) & > > > "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]" > > > RegX.IgnoreCase = True > > > RegX.Global = True > > > StripIllegalChar = RegX.Replace(StrInput, "") > > > ExitFunction: > > > Set RegX = Nothing > > > End Function > > > Sub CheckFolder() > > > Dim fso > > > Dim fol As String > > > fol = ("c:\temp\outlookimport") > > > Set fso = CreateObject("Scripting.FileSystemObject") > > > If Not fso.FolderExists(fol) Then > > > fso.CreateFolder (fol) > > > End If > > > End Sub > > . > > |
|
||
|
||||
|
Michael Bauer [MVP - Outlook]
Guest
Posts: n/a
|
Either: For z=1 to CountWhatever set att=objAttachments(z) Next or: For Each att in objAttachments z=z+1 next -- Best regards Michael Bauer - MVP Outlook : Outlook Categories? Category Manager Is Your Tool : VBOffice Reporter for Data Analysis & Reporting : <http://www.vboffice.net/product.html?pub=6&lang=en> Am Tue, 17 Nov 2009 12:53:02 -0800 schrieb hlock: > I'm making progress, but my (z) numbers aren't increasing with the addition > of attachments: > > Dim att As Outlook.Attachment > Dim z As Integer > Dim attfile As String > 'For z = 1 To lngCount > z = 1 > For Each att In objAttachments > attfile = att.filename > attfile = Replace(attfile, " ", "_") > attfile = tempdir & "\" & attfile > Print #fileNum, "File" & (z + 1) & "=" & attfile > Print #fileNum, "Desc" & (z + 1) & "=" & "This is the > attachment#" & (z) > Next att > > I'm getting: > File2=C:\temp\outlookimport\AdjusterReport.pdf > Desc2=This is the attachment#1 > > File2=C:\temp\outlookimport\AdjusterPhotos.pdf > Desc2=This is the attachment#1 > > How do I get the (z) numbers to increase? Thanks!!! > > "hlock" wrote: > >> Thank you. I apologize for the double post. For some reason my postings are >> not showing up for me until the next day. Nontheless, where I run into >> problems is further down in creating the tower.ini file. >> >> Dim z As Integer >> For z = 1 To lngCount >> Print #fileNum, "File" & (z + 1) & "=" & attachments (z) >> 'File2=C:\TMP\c2.bmp >> Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'description >> Next z >> > >> Here we have to run through the attachments and list them along with a >> description until all attachments have been listed. For example, there are 3 >> attachments (note the first file is the email) - AdjusterReport.pdf, >> AdjusterPhotos.pdf, and Litigation.pdf. In creating the ini file, the >> attachments need to be listed as follows: >> >> File2=C:\temp\outlookimport\AdjusterReport.pdf >> Desc2=This is the attachment#1 >> >> File3=C:\temp\outlookimport\AdjusterPhotos.pdf >> Desc3=This is the attachment#2 >> >> File4=C:\temp\outlookimport\Litigation.pdf >> Desc4=This is the attachment#3 >> >> How would I accomplish this? >> >> "Michael Bauer [MVP - Outlook]" wrote: >> >>> >>> >>> objAttachments is already a collection of attachments. There's no need to >>> create an array for it, instead of a loop through the array just loop >>> through the collection: >>> >>> Dim Att as Outlook.Attachment >>> For Each Att in objAttachments >>> ' do anything here with the attachment >>> Next >>> >>> -- >>> Best regards >>> Michael Bauer - MVP Outlook >>> >>> : Outlook Categories? Category Manager Is Your Tool >>> : VBOffice Reporter for Data Analysis & Reporting >>> : <http://www.vboffice.net/product.html?pub=6&lang=en> >>> >>> >>> Am Mon, 16 Nov 2009 22:19:04 -0800 schrieb hlock: >>> >>> > I am having to recreate lotus notes code into outlook code and am finding >>> it >>> > very difficult since I don't know coding very well. It's taken me a long >>> > time just to get where I am using snippets from what I have found from >>> > others. I know that what I want to do is for each attachment in a single >>> > email, I want to save it off, "remember" the path and filename and create >>> a >>> > description. Then I need to use the path and filename and the description >>> > later during the creation of an .ini file. However, I'm not doing it >>> > correctly. I thought I should be using the string split(), but I am >>> getting >>> > an error msg. I have indicated the error msg below. Since our IT dept >>> > doesn't have a lot of time to work on this, I'm trying to do it myself >>> (lol!) >>> > Any advice would be much appreciate. If you would like the lotus notes >>> > script to be posted to see what was originally intended, let me know as I >>> am >>> > not completely done with this yet. >>> > I am posting the whole code as I know that it is fraught with errors. >>> > However, it's a work in progress. >>> > Option Explicit >>> > Public Sub initialize() >>> > Dim fso >>> > Dim fil >>> > Dim objapp As Outlook.Application >>> > Dim ns As Outlook.NameSpace >>> > Dim ext As String >>> > Dim tempfile As String >>> > Dim tempdir As String >>> > Dim path As String >>> > Dim del As String >>> > Dim app As String >>> > Dim objitem As Object >>> > Dim strsubject As String >>> > Dim filename As String >>> > Dim objAttachments As Outlook.attachments >>> > Dim i As Long >>> > Dim lngCount As Long >>> > Dim strfile As String >>> > Dim strsender As String >>> > Dim strrecipient As String >>> > Dim strCC As String >>> > Dim strBCC As String >>> > Dim intsent As Date >>> > Dim strbody As String >>> > Set fso = CreateObject("Scripting.FileSystemObject") >>> > Set ns = GetNamespace("MAPI") >>> > Set objapp = CreateObject("Outlook.application") >>> > Select Case TypeName(objapp.ActiveWindow) >>> > Case "Explorer" >>> > Set objitem = objapp.ActiveExplorer.Selection.item(1) >>> > Case "Inspector" >>> > Set objitem = objapp.ActiveInspector.CurrentItem >>> > Case Else >>> > ' >>> > End Select >>> > tempdir = ("c:\temp\outlookimport") >>> > CheckFolder >>> > strsubject = objitem.Subject >>> > strsender = objitem.SenderName >>> > strrecipient = objitem.To >>> > strCC = objitem.CC >>> > strBCC = objitem.BCC >>> > intsent = objitem.SentOn >>> > strbody = objitem.Body >>> > filename = StripIllegalChar(strsubject) >>> > If fso.GetExtensionName(filename) = "" Then >>> > filename = filename & ".rtf" >>> > End If >>> > ext = fso.GetExtensionName(filename) >>> > path = fso.BuildPath(tempdir, filename) >>> > objitem.SaveAs path, olRTF >>> > Dim attachments() As String >>> > Dim attachdescs() As String >>> > Set objAttachments = objitem.attachments >>> > attachments = Split(objAttachments, ",") 'getting error msg here >>> invalid >>> > procedure call or argument >>> > attachdescs = Split(strsubject, ",") 'getting error msg here >>> invalid >>> > procedure call or argument >>> > lngCount = objAttachments.Count >>> > If lngCount > 0 Then >>> > For i = lngCount To 1 Step -1 >>> > ReDim Preserve attachments(UBound(attachments) + 1) >>> > ReDim Preserve attachdescs(UBound(attachdescs) + 1) >>> > strfile = objAttachments.item(i).filename >>> > strfile = Replace(strfile, " ", "_") >>> > strfile = tempdir & "\" & strfile >>> > objAttachments.item(i).SaveAsFile strfile >>> > Next i >>> > End If >>> > Dim towfile As String >>> > Dim fileNum As String >>> > towfile = tempdir & "\tower.ini" >>> > fileNum = FreeFile >>> > Open towfile For Output As fileNum >>> > Open towfile For Output As fileNum >>> > Print #fileNum, "[Group1]" >>> > Print #fileNum, "Desc=" & filename >>> > Print #fileNum, "MultiPage=Yes" >>> > Print #fileNum, "DeleteWhen=Always" >>> > Print #fileNum, "DefaultApp=email" >>> > Print #fileNum, "ShowDesc=Yes" >>> > Print #fileNum, "EmailImport=Yes" >>> > Print #fileNum, "MAIL_FROM=" & strsender >>> > Print #fileNum, "MAIL_TO=" & strrecipient ' >>> > Adding the indexing info here >>> > If strCC > "" Then >>> > Print #fileNum, "MAIL_CC=" & strCC >>> > Else >>> > Print #fileNum, "MAIL_CC=NULL " >>> > End If >>> > If strBCC > "" Then >>> > Print #fileNum, "MAIL_BCC=" & strBCC >>> > Else >>> > Print #fileNum, "MAIL_BCC=NULL" >>> > End If >>> > Print #fileNum, "MAIL_DATE=" & intsent >>> > If filename > "" Then >>> > Print #fileNum, "MAIL_SUBJECT=" & filename >>> > Else >>> > Print #fileNum, "MAIL_SUBJECT=NULL" >>> > End If >>> > If lngCount = 0 Then >>> > Print #fileNum, "NumberOfFiles=1" >>> > Print #fileNum, "File1=" & filename >>> > Print #fileNum, "Desc1=" & strsubject >>> > Else >>> > Print #fileNum, "NumberOfFiles=" & lngCount + 1 >>> > Print #fileNum, "File1=" & filename >>> > Print #fileNum, "Desc1=" & strsubject >>> > Dim z As Integer >>> > For z = 1 To lngCount >>> > Print #fileNum, "File" & (z + 1) & "=" & attachments(z) >>> > 'File2=C:\TMP\c2.bmp >>> > Print #fileNum, "Desc" & (z + 1) & "=" & attachdescs(z) 'This >>> is >>> > the message body >>> > Next z >>> > End If >>> > Print #fileNum, "[General]" >>> > Print #fileNum, "NumberofGroups=1" >>> > Close fileNum >>> > >>> > 'Call IDMImport(towfile) >>> > 'fso.DeleteFile path, True >>> > 'Set fso = Nothing >>> > End Sub >>> > Function StripIllegalChar(StrInput) >>> > Dim RegX As Object >>> > Set RegX = CreateObject("vbscript.regexp") >>> > RegX.Pattern = "[\" & Chr(34) & >>> > "\!\@\#\$\%\^\&\*\(\)\=\+\|\[\]\{\}\`\'\;\:\<\>\?\/\,]" >>> > RegX.IgnoreCase = True >>> > RegX.Global = True >>> > StripIllegalChar = RegX.Replace(StrInput, "") >>> > ExitFunction: >>> > Set RegX = Nothing >>> > End Function >>> > Sub CheckFolder() >>> > Dim fso >>> > Dim fol As String >>> > fol = ("c:\temp\outlookimport") >>> > Set fso = CreateObject("Scripting.FileSystemObject") >>> > If Not fso.FolderExists(fol) Then >>> > fso.CreateFolder (fol) >>> > End If >>> > End Sub >>> . >>> |
|
||
|
||||
|
|
|
| |
![]() |
| Thread Tools | |
| Rate This Thread | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| OE Save Attachment& Open Attachment Not Working | Philocophus | Windows XP Help | 1 | 27th Dec 2004 11:19 AM |
| IE produces .htm attachment, want .txt attachment | woo | Windows XP Internet Explorer | 1 | 16th Dec 2004 04:23 AM |
| Automaticly open attachment and print attachment | B_ | Microsoft Outlook | 4 | 18th Oct 2004 09:21 PM |
| Attachment icon when there's no attachment | =?Utf-8?B?U2NvdHQ=?= | Microsoft Outlook Discussion | 2 | 10th Oct 2004 03:59 PM |
| attachment in body of email rather than an attachment | R | Microsoft Outlook Discussion | 1 | 12th Aug 2004 04:55 PM |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc. |




