Access VBA質問箱 IV

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

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


2162 / 2272 ツリー ←次へ | 前へ→

【3656】フォルダ内のファイル名を取得する方法 morik 04/10/8(金) 11:21 質問[未読]
【3657】Re:フォルダ内のファイル名を取得する方法 Gin_II 04/10/8(金) 13:10 回答[未読]
【3658】Re:フォルダ内のファイル名を取得する方法 morik 04/10/8(金) 15:37 質問[未読]
【3659】Re:フォルダ内のファイル名を取得する方法 Gin_II 04/10/8(金) 15:46 回答[未読]
【3660】Re:フォルダ内のファイル名を取得する方法 morik 04/10/8(金) 16:02 質問[未読]
【3661】Re:フォルダ内のファイル名を取得する方法 Gin_II 04/10/8(金) 16:23 回答[未読]
【3662】Re:フォルダ内のファイル名を取得する方法 morik 04/10/8(金) 17:24 お礼[未読]

【3656】フォルダ内のファイル名を取得する方法
質問  morik  - 04/10/8(金) 11:21 -

引用なし
パスワード
   いつもお世話になっております。
初歩的な質問で申し訳ないのですが、表題の対処法が分かりません。

現在、ACCESS2000で指定したフォルダの中のファイル名を取得した後ファイル名のチェックを行い、処理日付のフォルダを作成しファイルをコピーするといった作業を行うプログラムの作成を行っています。

処理日付フォルダの作成とファイルのコピーはできたのですが、フォルダの中のファイル名を取得する方法がわかりません。

モジュールで自動で処理を行いたいのですが。

どなたか対処法をご存知の方、ご教授お願い致します。

【3657】Re:フォルダ内のファイル名を取得する方法
回答  Gin_II  - 04/10/8(金) 13:10 -

引用なし
パスワード
   >フォルダの中のファイル名を取得する方法がわかりません。

Dir 関数のヘルプを確認してください。
使用例もありますので。

【3658】Re:フォルダ内のファイル名を取得する方法
質問  morik  - 04/10/8(金) 15:37 -

引用なし
パスワード
   ▼Gin_II さん:
返信有難うございます。
早速ヘルプで使用例を見て以下のようにしてみたのですが、ファイル名が見つかりませんとエラーが出てしまいます。

フォルダ内に複数のファイルがあった場合のファイル名の抽出もこの方法で可能なのでしょうか?

初歩的な質問ばかりですみませんがご教授お願い致します。

Function AAA()
'MyFile = Dir

' 隠しファイル属性を持つ *.TXT ファイルであり、最初に見つかったファイル名を返します。
MyFile = Dir("*.TXT", vbHidden)

' C:\ 内のフォルダの名前を表示します。
MyPath = "c:\AAA\TEXT_DATA"  ' パスを設定します。
MyName = Dir(MyPath, vbDirectory)  ' 最初のフォルダ名を返します。
Do While MyName <> ""  ' ループを開始します。
  ' 現在のフォルダと親フォルダは無視します。
  If MyName <> "." And MyName <> ".." Then
    ' ビット単位の比較を行い、MyName がフォルダかどうかを調べます。
    If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
      Debug.Print MyName    ' フォルダであれば、それを表示します。
    End If
  End If
  MyName = Dir          ' 次のフォルダ名を返します。
Loop

End Function

【3659】Re:フォルダ内のファイル名を取得する方法
回答  Gin_II  - 04/10/8(金) 15:46 -

引用なし
パスワード
   > MyFile = Dir("*.TXT", vbHidden)
ここで、検索対象のフォルダ・ファイル名・属性等を指定します。
C:\Work フォルダの、すべてのテキストファイル(拡張子:txt)を検索するのなら、

MyFile = Dir("C:\Work\*.TXT")
のようにしてください。

【3660】Re:フォルダ内のファイル名を取得する方法
質問  morik  - 04/10/8(金) 16:02 -

引用なし
パスワード
   ▼Gin_II さん:
度々すみません。
先ほどアドバイスを頂いた通り

>MyFile = Dir("C:\Work\*.TXT")

と設定してみましたが、やはりファイルが見つかりません。と出てしまいます。
ソースの中のパスの設定とGetAttrの説明を調べても良く分かりません。
パスは検索したいフォルダに設定すればよいのでしょうか?

質問ばかりで申し訳ありませんがよろしくお願い致します。

Function AAA()
'MyFile = Dir

' 隠しファイル属性を持つ *.TXT ファイルであり、最初に見つかったファイル名を返します。
MyFile = Dir("C:\AAA\TEXT_DATA\*.TXT")

' C:\ 内のフォルダの名前を表示します。
MyPath = "c:\AAA\TEXT_DATA"  ' パスを設定します。
MyName = Dir(MyPath, vbDirectory)  ' 最初のフォルダ名を返します。
Do While MyName <> ""  ' ループを開始します。
  ' 現在のフォルダと親フォルダは無視します。
  If MyName <> "." And MyName <> ".." Then
    ' ビット単位の比較を行い、MyName がフォルダかどうかを調べます。
    If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
      Debug.Print MyName    ' フォルダであれば、それを表示します。
    End If
  End If
  MyName = Dir          ' 次のフォルダ名を返します。
Loop

End Function

【3661】Re:フォルダ内のファイル名を取得する方法
回答  Gin_II  - 04/10/8(金) 16:23 -

引用なし
パスワード
   >と設定してみましたが、やはりファイルが見つかりません。と出てしまいます。
>ソースの中のパスの設定とGetAttrの説明を調べても良く分かりません。
>パスは検索したいフォルダに設定すればよいのでしょうか?

すいません。前回はよくコード見てませんでした。
使用例をコピーしただけの状態ですね (^^ゞ

使用例を参考にする場合には、どういった処理をしているのか?というのを
よく確認して、必要にあわせてコードを変更します。

このコードは、フォルダ名を取得するコードですね。

以下のように修正してみてください。

  ' C:\ 内のフォルダの名前を表示します。
  MyPath = "c:\AAA\TEXT_DATA"
  MyName = Dir(MyPath)
  Do While MyName <> ""
    Debug.Print MyName
    MyName = Dir
  Loop

【3662】Re:フォルダ内のファイル名を取得する方法
お礼  morik  - 04/10/8(金) 17:24 -

引用なし
パスワード
   ▼Gin_II さん:

教えていただいたソースを実行してみましたらファイル名を取得することができました。

何度も質問に答えていただき有難うございました。

今回の件で勉強不足を痛感致しました。

これから参考書などでもっと勉強していきます。

どうもありがとうございました。

2162 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078301
(SS)C-BOARD v3.8 is Free