過去ログ

                                Page     157
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼同一フォルダ内にある不特定多数のファイル名の取得  素人 02/9/6(金) 20:40
   ┣Re:同一フォルダ内にある不特定多数のファイル名の取得  shun 02/9/6(金) 21:17
   ┃  ┗Re:同一フォルダ内にある不特定多数のファイル名の取得  カド 02/9/10(火) 13:18
   ┃     ┗Re:同一フォルダ内にある不特定多数のファイル名の取得  りん 02/9/10(火) 13:46
   ┃        ┣ありがとうございます  カド 02/9/10(火) 14:03
   ┃        ┗Re:同一フォルダ内にある不特定多数のファイル名の取得  カド 02/9/11(水) 8:58
   ┃           ┗Re:同一フォルダ内にある不特定多数のファイル名の取得  りん 02/9/11(水) 10:02
   ┃              ┗ありがとうございます  カド 02/9/11(水) 10:55
   ┗Re:同一フォルダ内にある不特定多数のファイル名の取得  こうき 02/9/30(月) 17:24
      ┗Re:同一フォルダ内にある不特定多数のファ...  つん 02/10/1(火) 14:07
         ┣Re:同一フォルダ内にある不特定多数のファ...  こうき 02/10/1(火) 15:19
         ┗つんさん ごめん。  Jaka 02/10/2(水) 10:06
            ┗Re:つんさん ごめん。  つん 02/10/2(水) 10:22
               ┗役に立たない助っ人でごめんなさい。  Jaka 02/10/2(水) 13:25
                  ┗とんでもない!いつも助けてもらってます  つん 02/10/2(水) 14:01
                     ┗偉そうな事を言ってしまいました。  Jaka 02/10/2(水) 17:13

 ───────────────────────────────────────
 ■題名 : 同一フォルダ内にある不特定多数のファイル名の取得
 ■名前 : 素人
 ■日付 : 02/9/6(金) 20:40
 -------------------------------------------------------------------------
   同一フォルダ内にある不特定多数のファイル名の取得するコードをご存知の方、よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : shun <shun@sa.starcat.ne.jp>  ■日付 : 02/9/6(金) 21:17  ■Web : http://t_shun.tripod.co.jp/  -------------------------------------------------------------------------
   ▼素人 さん:こんばんわ

>同一フォルダ内にある不特定多数のファイル名の取得するコードをご存知の方、よろしくお願いします。

このコードを実行するブックが調べたいフォルダに登録されているものとします。
検索結果は、"Sheet1"に書き出します。

Sub test()
  Dim Pn As String
  Dim Fn As String
  Dim i As Long
  Pn = ActiveWorkbook.Path
  ChDir Pn
  Fn = Dir("*.xls")
  i = 1
  Do Until Fn = ""
    Worksheets("Sheet1").Cells(i, 1) = Fn
    i = i + 1
    Fn = Dir()
  Loop
End Sub
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : カド  ■日付 : 02/9/10(火) 13:18  -------------------------------------------------------------------------
   ▼shun さん:
サブフォルダ内のファイル名も取得したい場合は、どうすれば良いのでしょうか?
教えてください。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/9/10(火) 13:46  -------------------------------------------------------------------------
   こんにちわ。

>サブフォルダ内のファイル名も取得したい場合は、どうすれば良いのでしょうか?
>教えてください。

こちらもどうぞ。
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=12072;id=Excel
 ───────────────────────────────────────  ■題名 : ありがとうございます  ■名前 : カド  ■日付 : 02/9/10(火) 14:03  -------------------------------------------------------------------------
   ▼りん さん:
早々の回答有難う御座います。

今までは、分からないことを本やネットで相当な時間と労力を費やして調べていましたが、質問箱に投稿すれば、こんなにも早く正解が分かるなんて夢のようです。

知的財産は皆で共有しましょう。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : カド  ■日付 : 02/9/11(水) 8:58  -------------------------------------------------------------------------
   ▼りん さん:
いつも自分の知っているレベルのことを駆使してプログラミングしているため、難しいことは分かりません。教えて下さい。

下記の?部ですが、
FileListing (strFilesPath, strSearchFile, strData(), blnSubDir)
のように括弧がないのはどうしてですか?初歩的な質問ですみません。


Public Function FilesList(ByVal strFilesPath As String, _
            ByVal strSearchFile As String, _
            Optional blnSubDir As Boolean = False) As Variant
    ・
    ・
  ?FileListing strFilesPath, strSearchFile, strData(), blnSubDir
 
End Function


Private Sub FileListing(ByVal strFilesPath As String, _
            ByVal strSearchFile As String, _
            strData() As String, blnSubDir As Boolean)
    ・
    ・
End Sub
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/9/11(水) 10:02  -------------------------------------------------------------------------
   カドさん、おはようございます。

>FileListing (strFilesPath, strSearchFile, strData(), blnSubDir)
>のように括弧がないのはどうしてですか?初歩的な質問ですみません。

>  FileListing strFilesPath, strSearchFile, strData(), blnSubDir

↓こいつを呼んでいる
>Private Sub FileListing(ByVal strFilesPath As String, _
>            ByVal strSearchFile As String, _
>            strData() As String, blnSubDir As Boolean)
>    ・
>    ・
>End Sub

ヘルプより引用開始=====
Call ステートメント
プロシージャを呼び出すとき、キーワード Call は省略できます。キーワード Call を使って、引数が必要なプロシージャを呼び出す場合は、引数リスト (引数 argumentlist) をかっこで囲む必要があります。キーワード Call を省略するときは、引数リストを囲むかっこも省略しなければなりません。
引用終了==========

なので、
Call FileListing(strFilesPath, strSearchFile, strData(), blnSubDir)

Callの使い方にもちょこっと載ってますので、そちらもどうぞ。
 ───────────────────────────────────────  ■題名 : ありがとうございます  ■名前 : カド  ■日付 : 02/9/11(水) 10:55  -------------------------------------------------------------------------
   ▼りん さん:
早々の回答有難う御座います。
一応ヘルプのcallは読んだのですが、最後までしっかり読んでなかったようです。
今後気をつけます。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファイル名の取得  ■名前 : こうき  ■日付 : 02/9/30(月) 17:24  -------------------------------------------------------------------------
   同一フォルダ内にある不特定多数のファイル名をsheet2に貼り付けたのですが、
そのファイルの順番を指定することは可能ですか?

ちなみに、ファイルは 1990-01.csv
          1990-02.csv
          1990-03.csv
          1990-04.csv
           (yyyy-mm).csv
              ・
             ・
              ・
という形になっていて、古い順番に開きたいのですが・・・。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファ...  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/10/1(火) 14:07  -------------------------------------------------------------------------
   こんにちは。

ファイル名を読み込むときにソートをかけてやる必要があるみたいです。

http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=one;no=11625;id=Excel

こちらの記事が参考になると思います。
一度見てみてくださいね。
 ───────────────────────────────────────  ■題名 : Re:同一フォルダ内にある不特定多数のファ...  ■名前 : こうき  ■日付 : 02/10/1(火) 15:19  -------------------------------------------------------------------------
   ▼つん さん:
こんにちは。

>ファイル名を読み込むときにソートをかけてやる必要があるみたいです。

なるほどー。うまくいきました。
おかげさまで、やっと完成しました。
ありがとうございます。
 ───────────────────────────────────────  ■題名 : つんさん ごめん。  ■名前 : Jaka  ■日付 : 02/10/2(水) 10:06  -------------------------------------------------------------------------
   前より少しマシです。(V3のどっか)
ヘルプのFoundFiles オブジェクトにヒントがありました。
昇順、降順で書き出しています。
ついでにフルパスからファイル名だけを取出す方法も..。
知っていると思うけど...。


Sub 昇順()
  Dim i As Long
  With Application.FileSearch
    .LookIn = "C:\Windows\デスクトップ"
    .FileName = "*.xls"
    If .Execute(SortBy:=msoSortByFileName, _
      sortorder:=msoSortOrderAscending) > 0 Then
      Range("A1").Value = "ファイル名"
      Range("B1").Value = "フルパス"
      For i = 1 To .FoundFiles.Count
        Range("A" & i + 1).Value = Dir(.FoundFiles(i))
        Range("B" & i + 1).Value = .FoundFiles(i)
      Next
    Else
      MsgBox "エクセルファイルはありません。"
    End If
  End With
End Sub

Sub 降順()
  Dim i As Long
  With Application.FileSearch
    .LookIn = "C:\Windows\デスクトップ"
    .FileName = "*.xls"
    If .Execute(SortBy:=msoSortByFileName, _
      sortorder:=msoSortOrderDescending) > 0 Then
      Range("A1").Value = "ファイル名"
      Range("B1").Value = "フルパス"
      For i = 1 To .FoundFiles.Count
        Range("A" & i + 1).Value = Dir(.FoundFiles(i))
        Range("B" & i + 1).Value = .FoundFiles(i)
      Next
    Else
      MsgBox "エクセルファイルはありません。"
    End If
  End With
End Sub
 ───────────────────────────────────────  ■題名 : Re:つんさん ごめん。  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/10/2(水) 10:22  -------------------------------------------------------------------------
   Jakaさん、おはようございます。

>前より少しマシです。(V3のどっか)
>ヘルプのFoundFiles オブジェクトにヒントがありました。
>昇順、降順で書き出しています。

おお!これは便利ですねー。
FileSearchは使ったことあったけど、Executeメソッドで、ファイルを並べ替えられるのはわかってなかったです(と、思う・・・記憶がおぼろ〜)
でも!でもね!Jakaさん!!

この間から、FileSearchで不具合続出してるんです(T_T)
明らかにあるファイルを見つけられなかったことが何度か・・・
2年ほど前に作ったソフトの中でも使ってたんですけど、作った当初はつつがなく動作していたのに、今年になってから、コンボボックスで指定したファイルを開く、というところで、「ファイルがありません」で止まってしまうということがありました・・・確かめたらあるんですけど。
結局Dir関数だけの処理に書き換えました。

Jakaさんは、よく使われますか?問題なく使えてます?
 ───────────────────────────────────────  ■題名 : 役に立たない助っ人でごめんなさい。  ■名前 : Jaka  ■日付 : 02/10/2(水) 13:25  -------------------------------------------------------------------------
   >この間から、FileSearchで不具合続出してるんです(T_T)
>結局Dir関数だけの処理に書き換えました。

「結局Dir関数だけの処理」でV3で色々論議していたような事を思いだしました。
確か、Dir関数が1番速いとかで終っていた様に思います。
この時に色々思考錯誤したしたせいで調子が悪くなったとは考えられませんか?
ちゃんとメンテナンスしてます?


>Jakaさんは、よく使われますか?問題なく使えてます?

おっと、1番つらい事を問い掛けてきましたね。
今の所は、ちゃんと動いていると思います。(たぶん)
暇つぶし見たいな感じでやっているんで、頻繁に使うとどうなるのか解らないけど..。
 ───────────────────────────────────────  ■題名 : とんでもない!いつも助けてもらってます  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/10/2(水) 14:01  -------------------------------------------------------------------------
   Jakaさんこんにちは。

>「結局Dir関数だけの処理」でV3で色々論議していたような事を思いだしました。
>確か、Dir関数が1番速いとかで終っていた様に思います。
>この時に色々思考錯誤したしたせいで調子が悪くなったとは考えられませんか?

いえ・・・このソフトは、その部分ではあまり試行錯誤してなかったので・・
第一、私その議論には関係してなかったような・・読んだ記憶はおぼろげながら(^^;
してたっけ?あとでちと探してみよう・・・

>ちゃんとメンテナンスしてます?

えっ!?メンテナンスなんかしてへんわっ
FileSearchでエラーが出て、あわてて修正したぐらい。
わずかながら他にも作ったソフトも作りっぱなしやわ。
(つくっておいて自分はあまり使わないし(^^; 社内の他の人が使ってます)
Jakaさんは、ちゃんと定期的にメンテしたりしてるの?
どうやってしてるの?

>おっと、1番つらい事を問い掛けてきましたね。
すんません(^^;

>今の所は、ちゃんと動いていると思います。(たぶん)
>暇つぶし見たいな感じでやっているんで、頻繁に使うとどうなるのか解らないけど..。

そうかあ・・・
私は、この間なんか、作った直後に1回目だけ成功して、あとは全部失敗!ということありました(T_T)
 ───────────────────────────────────────  ■題名 : 偉そうな事を言ってしまいました。  ■名前 : Jaka  ■日付 : 02/10/2(水) 17:13  -------------------------------------------------------------------------
   メンテナンスって、パソコンの事です。(メンテナンスって言うほどの事じゃないけど)
過去に作ったマクロのメンテナンスなど全くしません。
同じ物を2度作るのは、面倒なんで参考資料として残してありますが。(ロジックをすぐに忘れる。スペルが覚えられない。今だにRange("A65536").End(xlUp).Row 、Cells(.Rows.Count, 1).End(xlUp).Rowこう言うのも書けない。これは、コピペです。)

それと、私の使っているPCは、つんさん達が使っているPCよりかなり古い、HDの容量が2Gちょっとしかないので気軽にメンテナンスって言葉と使っていますが、メンテナンスって言ったって,ただのスキャンディスク(完全の方)、デフラグ、たまにマスターブートのリフレッシュ、極たまにレジストリのスキャンをするだけです。
暇だから。

>社内の他の人が使ってます。
いいなぁ!!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 157