Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50251 / 76732 ←次へ | 前へ→

【31373】Re:日付
質問  たかし E-MAIL  - 05/11/18(金) 15:14 -

引用なし
パスワード
   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
>
>などとします。

0 hits

【31336】日付 たかし 05/11/17(木) 20:21 質問
【31337】Re:日付 Kein 05/11/17(木) 20:37 回答
【31349】Re:日付 Jaka 05/11/18(金) 10:14 回答
【31366】Re:日付 Kein 05/11/18(金) 14:38 回答
【31373】Re:日付 たかし 05/11/18(金) 15:14 質問
【31376】Re:日付 Kein 05/11/18(金) 15:26 回答
【31391】Re:日付 たかし 05/11/18(金) 16:26 お礼

50251 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free