Это не VBScript, потому что вы определяете свои переменные As <something>
. В VBScript все переменные имеют тип варианта.
В любом случае, ваш Sub UpdateSubject
может очень хорошо читать содержимое текстового файла, но ничего не делает, кроме как отображать его в окне сообщения.
Чтобы вернул эти данные вместо того, чтобы просто читать их в локальной переменной, которая живет только внутри этой подпрограммы, сделайте ее Function
подобной:
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").ExpandEnvironmentStrings("%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
Далее используйте эту информацию в подпрограмме UpdateSubject
Sub UpdateSubject()
Dim SaveCode As String
Dim KeyWord As String
Dim objItem As MailItem
Dim FileContent As String
' here, you use the function to pull the content of the text file and store it in
' a local variable called 'FileContent' to use in your inputbox.
FileContent = TextFile_PullData
SaveCode = InputBox("Please enter filecode in the format nnn/nnn", "VisualFiles Auto Save", FileContent)
Set objItem = GetCurrentItem()
KeyWord = "TSD"
objItem.Subject = "[" + KeyWord + "=" + SaveCode + "] " + objItem.Subject
'or skip the inputox alltogether and set the subject directly:
'objItem.Subject = "[" + KeyWord + "=" + FileContent + "] " + objItem.Subject
End Sub