![]() |
|
|
|
#1
|
|||
|
|||
|
Good afternoon all, I have posted this elsewhere but think i got a bit lost on that site so i thought i would ask here. I am not a VBA coder at all but need to cokmplete a small task. i have 2 scripts the info from is used in the second. So the first piece of the script is to read the contents of a text file lets start there:
So hopefully this will read a file in the location whcih consists of just a few letters and numbers. Then this will be available to use in the second part of the script. Is there anyway of showing that it has read the file contents like temporarily adding a message box to prove it has read the txt file. At the moment it faills over on the 'open the text file Function TextFile_PullData() 'PURPOSE: Send All Data From Text File To A String Variable Dim TextFile As Integer Dim FilePath As String Dim FileContent As String Dim strUser As string ' get the current user name strUser = CreateObject("WScript.Network").UserName 'or use strUser = CreateObject("WScript.Shell").ExpandEnvironmentStr ings("%USERNAME%") 'File Path of Text File FilePath = "C:\Users\" & strUser & "\Temp\VFile.txt" 'Determine the next file number available for use by the FileOpen function TextFile = FreeFile 'Open the text file Open FilePath For Input As TextFile 'Store file content inside a variable FileContent = Input(LOF(TextFile), TextFile) 'Close Text File Close TextFile 'Report Out Text File Contents MsgBox FileContent 'have the function return the data to the calling code TextFile_PullData = FileContent End Function Second part it takes the Information and adds it to this script in the TextFile_PullData Sub UpdateSubject() Dim SaveCode As String Dim KeyWord As String Dim objItem As MailItem KeyWord = "TSD" SaveCode = TextFile_PullData Set objItem = GetCurrentItem() objItem.Subject = "[" + KeyWord + "=" + SaveCode + "] " + objItem.Subject End Sub Function GetCurrentItem() As Object Dim objApp As Outlook.Application Set objApp = Application On Error Resume Next Select Case TypeName(objApp.ActiveWindow) Case "Explorer" Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1) Case "Inspector" Set GetCurrentItem = objApp.ActiveInspector.CurrentItem End Select Set objApp = Nothing End Function |
|
#2
|
||||
|
||||
|
It is not clear what the relevance of the keyword is or what the content of the textfile is, but the following provides the additional error trapping you need.
Code:
Option Explicit
Function TextFile_PullData() As String
'Graham Mayor - https://www.gmayor.com - Last updated - 23 Nov 2018
'PURPOSE: Send All Data From Text File To A String Variable
Dim TextFile As Integer
Dim FilePath As String
Dim FileContent As String
Dim fso As Object
'File Path of Text File
FilePath = Environ("USERPROFILE") & "\Temp\VFile.txt"
'or for the User Temp folder
'FilePath = Environ("TEMP") & "\VFile.txt"
'However these are not the same folder
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FilePath) Then
'Determine the next file number available for use by the FileOpen function
TextFile = FreeFile
'Open the text file
Open FilePath For Input As TextFile
'Store file content inside a variable
FileContent = Input(LOF(TextFile), TextFile)
'Close Text File
Close TextFile
'Report Out Text File Contents
TextFile_PullData = FileContent
Else
TextFile_PullData = ""
Beep
MsgBox FilePath & vbCr & " is not available"
End If
Set fso = Nothing
End Function
'Second part it takes the Information and adds it to this script in the TextFile_PullData
Sub UpdateSubject()
Dim SaveCode As String
Dim KeyWord As String
Dim objItem As MailItem
KeyWord = "TSD"
SaveCode = TextFile_PullData
If SaveCode = "" Then Exit Sub
Set objItem = GetCurrentItem()
objItem.Subject = "[" + KeyWord + "=" + SaveCode + "] " + objItem.Subject
Set objItem = Nothing
End Sub
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.currentItem
End Select
Set objApp = Nothing
End Function
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
|||
|
|||
|
The key word is totally irrelevant all this does is adds what we require to an email subject. the script which i have at the moment prompts for the contents of the TXT file and then inserts it into the subject line.
The idea is that the application we have can write the info to a text file which will be something along the lines of FFF00001/001 Then from the script we take the contents of that text file and the script takes that info automaticaly and adds it to the subject line along with the key word. So with the key word it will be TSD=FFF00001/001. Does that make sense? The location of the file is C:\users\%username%\Temp\VFfile.Txt (As used in CMD) so out of the script you supplied how is that added? |
|
#4
|
||||
|
||||
|
You need to change the following section - the rest seems OK
Code:
Sub UpdateSubject()
Dim SaveCode As String
Dim KeyWord As String
Dim objItem As Object
Dim strSubject As String
KeyWord = "TSD"
SaveCode = TextFile_PullData
If SaveCode = "" Then Exit Sub
Set objItem = GetCurrentItem()
strSubject = objItem.Subject
objItem.Subject = "[" & KeyWord & "=" & SaveCode & "] " & strSubject
Set objItem = Nothing
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Macro to read text file and organize data in excel
|
srinidhi.mv88 | Excel Programming | 5 | 05-19-2015 12:06 AM |
Read only file
|
NienkeG | Word | 2 | 08-03-2014 03:57 PM |
| Read the newest file in a folder, how? | DID | PowerPoint | 1 | 07-09-2014 01:40 AM |
Read text Report file with VBA and write parsed fields to Excel workbook
|
tpcervelo | Excel Programming | 1 | 01-05-2012 10:14 PM |
| PowerPoint can't read x.ppt file? | chronic student | PowerPoint | 0 | 05-30-2006 05:35 AM |