2003では普通に使えたのですが、2007で使うためにはどのように変えればいいのでしょうか?途方にくれているのでVBAに詳しい方ご教授ください。処理文で回答頂けるとうれしいです。
Public Sub p_更新()
For i = 1 To 100: gwKillFL(i) = "": Next i
With Application.FileSearch
.LookIn = gAAFLD
.SearchSubFolders = True
.Filename = "*T" & Format(gBB, "00") & ".txt"
.FileType = msoFileTypeAllFiles
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
gwKillFL(i) = .FoundFiles(i)
Call p_ReadData(.FoundFiles(i))
Next i
For i = 1 To .FoundFiles.Count
If gwKillFL(i) <> "" Then
Kill gwKillFL(i)
End If
Next i
If gMenu1 > 0 Then
Range("A2").Select
MsgBox "更新", vbOKOnly, "確認"
End If
Else
If gMenu1 > 0 Then
MsgBox "更新ファイルなし。", vbOKOnly, "確認"
End If
End If
End With
End Sub
>Dim gwKillFL() As String '要修正
これを見落としましたね?
できたという事なので良かったですけど。
>コンソールウィンドウが出ない方法...
Sub test()
Const WRK = "c:\temp\out.txt" '■出力用。ファイル名適宜変更のこと。
Dim TMP As String
Dim i As Long
Dim x As Long
Dim n As Long
TMP = gAAFLD & "\*T" & Format(gBB, "00") & ".txt"
CreateObject("WScript.Shell").Run _
"%ComSpec% /c dir """ & TMP & """ /b/s>" & WRK, 0, True
n = FreeFile
Open WRK For Input As #n
gwKillFL = Split(Input(LOF(n), #n), vbCrLf)
Close #n
Kill WRK
x = UBound(gwKillFL)
If x > 0 Then
':
以下変更なしです。
質問者
お礼
end-uさん。
お忙しい中、回答ありがとうございます。
Open WRK For Input As #nのところでパス名が無効ですと出てきます。
あと、出力用。ファイル名適宜変更のこととありますが、それは更新されるエクセルファイルの場所のことでしょうか?
ファイル名でのソートが必要でしょうか?
必要なければDIRコマンドを使った簡易な手法があります。
Option Explicit
':
Dim gwKillFL() As String '要修正
':
Sub test()
Dim TMP As String
Dim WRK As String
Dim i As Long
Dim x As Long
TMP = gAAFLD & "\*T" & Format(gBB, "00") & ".txt"
WRK = CreateObject("WScript.Shell").Exec _
("%ComSpec% /c dir """ & TMP & """ /a/b/s") _
.StdOut.ReadAll
gwKillFL = Split(WRK, vbCrLf)
x = UBound(gwKillFL)
If x > 0 Then
For i = 0 To x - 1
Debug.Print gwKillFL(i) '確認用
'Call p_ReadData(gwKillFL(i)) 'コメントアウトしてあります。
If gwKillFL(i) <> "" Then
'Kill gwKillFL(i) 'コメントアウトしてあります。
End If
Next
If gMenu1 > 0 Then
Range("A2").Select
MsgBox "更新", vbOKOnly, "確認"
End If
Else
If gMenu1 > 0 Then
MsgBox "更新ファイルなし。", vbOKOnly, "確認"
End If
End If
End Sub
コンソールウィンドウが一瞬出ます。
気になるようだったらファイルに一旦出力して取り込む方法もあります。
お礼
end-uさん。 お忙しい中、回答ありがとうございます。 Open WRK For Input As #nのところでパス名が無効ですと出てきます。 あと、出力用。ファイル名適宜変更のこととありますが、それは更新されるエクセルファイルの場所のことでしょうか?