|
Keinさん、jakaさん、ありがとう御座います。
返信が遅くなり申し訳ありません。
早速試してみます。
先日この質問を書く前に、検索してみたのですが、うまく引っかからず
質問したのですが、そのあとにいくつか似たような事例を見つけることが
できました。しかし、そこではいまいち理解できず、回答を頂けて助かりました。
そこで、FileDateTimeのヘルプを確認してみたのですが、よく分からず、困っていました。
下記に作成したマクロを載せます。
Sheets(1).Cells(rowcount + i, 1) = 最終更新日
に、取得してきたファイルの最終更新日を書き込むにはどうしたら良いでしょうか?
取得する際に、複数のファイルを選択できるようにしたいです。
ちなみにこのマクロは、他人が作成したものを書き換えて作成しているので、
私が全ての意味を理解しているわけではありません。
特に "fp"と"UBound(fp)"で、どのような内容が取得できるのかも分かっていません。(UBound(fp)はファイルの個数?)
教えていただけると助かります。
以上、よろしくお願いいたします。
Sub 取込(inputmode As Integer)
Dim fp As Variant
Dim fso As Object, fnow As Object
Dim temp As Variant, FCOFF As Variant, FC2OFF As Variant, AISOFF As Variant
Dim LVOFX As Variant, LVOFY As Variant, LVONX As Variant, LVONY As Variant
Dim i As Integer, j
Dim rowcount
Const ForReading = 1, ForWriting = 2, ForAppending = 8
fp = Application.GetOpenFilename(MultiSelect:=True, _
Title:=" ログファイルを選択して下さい(CtrlやShiftキーを使って複数選択可)")
If Not IsArray(fp) Then
MsgBox ("処理を中止します")
Exit Sub
End If
Set fso = CreateObject("Scripting.FileSystemObject")
DoEvents
For i = 1 To UBound(fp)
Set fnow = fso.OpenTextFile(fp(i), ForReading)
Do While fnow.AtEndOfStream <> True
temp = fnow.readline
' ここに取得したファイルの最終更新日を入れたい。
' Sheets(1).Cells(rowcount + i, 1) = 最終更新日
If temp Like "*fcsadj.Dnocalib*" Then
FCOFF = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 2) = FCOFF(1)
DoEvents
ElseIf temp Like "*Calib. Offset (FC2)*" Then
FC2OFF = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 3) = FC2OFF(1)
ElseIf temp Like "*fcsadj.Dcalib_ais*" Then
AISOFF = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 4) = AISOFF(1)
ElseIf temp Like "*lvladj.off.dx*" Then
LVOFX = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 5) = LVOFX(1)
ElseIf temp Like "*lvladj.off.dy*" Then
LVOFY = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 6) = LVOFX(1)
ElseIf temp Like "*lvladj.on.dx*" Then
LVONX = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 7) = LVOFX(1)
ElseIf temp Like "*lvladj.on.dy*" Then
LVONY = Split(Right(temp, 10), "=")
Sheets(1).Cells(rowcount + i, 8) = LVOFX(1)
End If
Loop
fnow.Close
Set fnow = Nothing
Call Display_MyProgressBar(i, UBound(fp))
DoEvents
Next i
End Sub
▼Kein さん:
>他には、FSOで取得する方法もあります。
>
>Dim FSO As Object
>Const MyF As String = _
>C:\Documents and Settings\User\My Documents\Test.txt"
>
>Set FSO = CreateObject("Scripting.FileSystemObject")
>MsgBox FSO.GetFile(MyF).DateLastModified
>Set FSO = Nothing
>
>などとします。
|
|