ユーザーに .csv ファイルに移動するように求める単純なコードがあり、列数をカウントします (はるかに大きなプロジェクトの一部)。完全に機能しますが、本当に厄介な問題があります。 .. ユーザーにファイルへの移動を求めるウィンドウが開いたとき、そのウィンドウはフォーカスされておらず、以前にフォーカスされていたウィンドウの後ろに座っています。誰が何が間違っているのか指摘できますか?
IE 9 バージョン 9.0.8112.16421 で動作する Windows 7 64 ビットを使用しています。
'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
みんなありがとう!