Reputation: 579
I've a simple piece of code which asks a user to navigate to a .csv file and it will count the number of columns (part of a much bigger project) and while it works perfectly, I'm having a really annoying issue... When the window opens prompting the user to navigate to the file, it isn't in focus and sits behind the window previously in focus. Can anyone point out whats gone wrong?
I'm using Windows 7 64-bit running with IE 9 Version 9.0.8112.16421
'Get location of .csv file
'set the type of dialog box you want to use: 1 = Open 2 = SaveAs 3 = File Picker 4 = Folder Picker
Const msoFileDialogOpen = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
Set WshShell = CreateObject("WScript.Shell")
'Launch at default path
strInitialPath = WshShell.ExpandEnvironmentStrings("C:\")
objWord.ChangeFileOpenDirectory(strInitialPath)
With objWord.FileDialog(msoFileDialogOpen)
.Title = "Select the file to process"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "CSVFiles", "*.csv"
.Filters.Add "All Files", "*.*"
If .Show = -1 Then
For Each File in .SelectedItems
Set objFile = fso.GetFile(File)
Next
End If
End With
'Close Word
objWord.Quit
'Counts columns in csv file if delimiter is comma
Dim oFso, oReg, sData, lCount
Const ForReading = 1
Set oReg = New RegExp
Set oFso = CreateObject("Scripting.FileSystemObject")
sData = oFso.OpenTextFile(objFile.Path, ForReading).ReadLine
With oReg
.Global = True
'Check Pattern (delimiter, has qualifier?)
'.Pattern = ","
'.Pattern = "|"
'.Pattern = "^"
.Pattern = ""","""
'.Pattern = """|"""
'.Pattern = """^"""
lCount = .Execute(sData).Count + 1
End With
WScript.Echo lCount
Set oFso = Nothing
Set oReg = Nothing
Thanks guys!
Upvotes: 1
Views: 5302
Reputation: 3179
Did you try with AppActivate?
CreateObject("WScript.Shell").AppActivate "Your window title here..."
Upvotes: 2