Dim fso,pdOne,f
Dim OneLineTxt As String
Dim iT,jT As Integer
Dim iPosOne,iPosTwo As integer
Dim StringTemp1,StringTemp2 As String
Sub ReadLogFile()
‘ファイルアクセスのオブジェクト生成
Set fso = CreateObject(“Scripting.FileSystemObject”)
‘ログファイルの存在性判定
pd1 = fso.FileExist(Cells(4,4).Value)
‘戻り値0の場合は、ファイルなし
if 0 = pd1 Then
MsgBox "指定されたログファイルが存在しません。"
’処理完了
Exit Sub
End If
‘ファイルのオープン 読込のみ
Set f = fso.OpenTextFile(Cells(4,4).Value,1,false)
‘セル座標の初期設定 注意★:画面レイアウト変わったら、再度設定
iT = 8
jT = 2
‘予め、前回データのクリア
Do While Trim(Cells(iT,jT)) <> “” Or Trim(Cells(iT,jT+1)) <> “”
Cells(iT,jT) = “”
Cells(iT,jT+1) = “”
iT = iT + 1
Loop
‘セル座標の初期設定
iT = 8
jT = 2
‘変数初期化
StringTemp1 = “”
StringTemp2 = “”
‘ログファイルの行毎の読込と処理
Do While f.atendofstream <> True
oneLineTxt = f.ReadLine()
iPosOne = InStr(OneLineTxt,"【")
iPosTwo = InStr(OneLineTxt,"】")
'セルに値を設定する
If (iPos1 > 0) And (iPos2 > 0) Then
If (StringTemp1 <> Mid(OneLineTxt,1,19) Or (StringTemp2 <> Mid(OneLineTxt,iPos1,iPos2-iPos1+1) Then
Cells(iT,jT) = Mid(OneLineTxt,1,19)
Cells(iT,jT+1) = Mid(OneLineTxt,iPos1,iPos2-iPos1+1)
StringTemp1 = Mid(OneLineTxt,1,19)
StringTemp2 = Mid(OneLineTxt,iPos1,iPos2-iPos1+1)
iT = iT +1
End If
End If
Loop
‘Set f = f.Close()
‘ファイルハンドルのクリア
Set f = Nothing
Set fso = Nothing
End Sub
‘ログファイルの選択
Sub SelectFile()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
,Filters.Clear
,Filters.Add “Log Files”,”.log” ,Filters.Add “All Files”,”.*”
If .Show = -1 Then
‘ファイルのフルパスの取得
Sheet1.Cells(4,4) = .SelectedItmes(1)
End If
End With
End Sub
“データのクリア
Sub ClearAllData()
iT = 8
jT = 2
Do While iT < 2000
Cells(iT,jT) = “”
Cells(iT,jT+1) = “”
iT = iT +1
Loop
End Sub
Private Sub CommandButton1_Click()
Call ReadLogFile
End Sub
Private Sub CommandButton2_Click()
Call ClearAllData
End Sub
Private Sub CommandButton3_Click()
Call SelectFile
End Sub