過去ログ

                                Page     151
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼xlsとtxtを同時に処理するには?  haru 02/9/30(月) 13:51
   ┗Re:xlsとtxtを同時に処理するには?  ichinose 02/9/30(月) 21:42
      ┗Re:xlsとtxtを同時に処理するには?  haru 02/10/1(火) 8:37

 ───────────────────────────────────────
 ■題名 : xlsとtxtを同時に処理するには?
 ■名前 : haru
 ■日付 : 02/9/30(月) 13:51
 -------------------------------------------------------------------------
   xlsとtxtを同時に実行するには?

  fnm$ = Dir("c:\*.xls", vbnomal)
  Do While fnm$ <> ""
    '処理
    fnm$ = Dir()
  Loop

 ですと、xlsのみの処理ですが、txtも同時に実行したいときはど
うすれば良いですか?

  fnm$ = Dir("c:\*.xls", vbnomal)
  Do While fnm$ <> ""
    '処理
    fnm$ = Dir()
  Loop
  fnm$ = Dir("c:\*.txt", vbnomal)
  Do While fnm$ <> ""
    '処理
    fnm$ = Dir()
  Loop

 と、するしかないですか?
 よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:xlsとtxtを同時に処理するには?  ■名前 : ichinose  ■日付 : 02/9/30(月) 21:42  -------------------------------------------------------------------------
   ▼haru さん:
こんばんは。

>  fnm$ = Dir("c:\*.xls", vbnomal)
>  Do While fnm$ <> ""
>    '処理
>    fnm$ = Dir()
>  Loop
>  fnm$ = Dir("c:\*.txt", vbnomal)
>  Do While fnm$ <> ""
>    '処理
>    fnm$ = Dir()
>  Loop
> と、するしかないですか?
基本的には、そうなんですが、汎用的というこで、
'=====================================
Sub test()
  Dim pnm(1 To 2) As String
  pnm(1) = "c:\*.xls"
  pnm(2) = "c:\*.txt"
  fnm$ = spdir(pnm())
  i = 1
  Do While fnm$ <> ""
   Cells(i, 1).Value = fnm$
   fnm$ = spdir()
   i = i + 1
   Loop
End Sub
'==============================================================
Function spdir(Optional pathnm = "") As String
  Static svpath As Variant
  Static lim As Long
  Static idx As Long
  dim lfile as string
  Dim chdir_flg As Integer
  spdir = ""
  If VarType(pathnm) = vbArray + vbString Then
    svpath = pathnm
    lim = UBound(svpath)
    idx = LBound(svpath)
    chdir_flg = 1
  Else
    chdir_flg = 0
    End If
  Do While idx <= lim
   If chdir_flg = 1 Then lfile = Dir(svpath(idx)) Else lfile = Dir()
   Do While lfile <> ""
    spdir = lfile
    Exit Do
    Loop
   If spdir <> "" Then Exit Do
   idx = idx + 1
   chdir_flg = 1
   Loop
End Function
2回ループさせた方がコードが短いでしょうか?
 ───────────────────────────────────────  ■題名 : Re:xlsとtxtを同時に処理するには?  ■名前 : haru  ■日付 : 02/10/1(火) 8:37  -------------------------------------------------------------------------
   ▼ichinose さん:
 こんにちは。
 ありがとうございます。

>2回ループさせた方がコードが短いでしょうか?
 3回以上だと、違ってきます。

>>fnm$ = Dir("c:\*.txt", vbnomal)
 ここを、1行で書けないかと思ったんですが、
 やはり自分でループさせるしかないんですね。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 151