
いつもお世話になります
今、DiSK整理のためのプログラムを開発中なのですが
ファイルとフォルダの区別の際、DiR関数を下記のように使ったのですが
'...ファイル検索
moji = Path & "\*.*"
tmp = Dir(moji, vbNormal)
・
'...フォルダ検索
moji = Path & "\*"
tmp = Dir(moji, vbDirectory)
vbNormalの場合はファイルだけを持って来てくれるのですが
vbDirectoryはファイル、フォルダ、それ以外のすべてを持ってきます
ちょっと不思議に感じています
サブフォルダだけ抜き出してくれる方法は別に有るのでしょうか?
またはファイルとフォルダ、その他と区別できる方法が有れば良いのですが
もしお分かりになりましたら教えてください
以上、よろしくお願いいたします

No.3ベストアンサー
- 回答日時:
No1の方のようにするのが良いかと思いますが、
どうしても、dir関数を使用したい場合は、以下のようにしてください。
以下は、指定フォルダ内の全てのフォルダのみを表示するサンプルです。
Public Sub Dir試験()
Dim path As String
Dim tmp As String
Dim moji As String
path = "d:\goo\excel\goo367"
moji = path & "\*"
tmp = Dir(moji, vbDirectory)
Do While tmp <> ""
If tmp <> "." And tmp <> ".." And GetAttr(path & "\" & tmp) = vbDirectory Then
MsgBox (tmp)
End If
tmp = Dir()
Loop
End Sub
---------------------------------------
pathについてはあなたの環境にあわせてください。
vbDirectoryを指定したにも関わらず、なぜ、ファイルも取得できてしまうのか
その理由については、下記サイトに詳細に書かれています。
http://officetanaka.net/excel/vba/tips/tips95.htm
私が提示したサンプルも上記サイトを参考にしています。
いつもお世話になります
大切なお時間を割いて例題を作っていただき心から感謝しています
例題に基づきプログラムを作成させていただきました
本当にありがとうございました
No.4
- 回答日時:
残念ながらvbdirectryはフォルダだけを選んでくれません。
同名のファイルを排除出来ないのです。下記URLでは、attributeを併用してヒットしたものがファイルかフォルダか区別させてます。https://msdn.microsoft.com/ja-jp/library/dd31395 …
いつもお世話になります
参考になるURLをご紹介いただきありがとうございます
今後のプログラム開発には欠かせない大切な資料ですね
今後ともよろしくお願い申し上げます
No.2
- 回答日時:
ここで質問するより自分で探した方が早いと思いますが…
http://officetanaka.net/excel/vba/tips/tips95.htm
https://msdn.microsoft.com/ja-jp/vba/language-re …
いつもありがとうございます
いろいろ探したのですが、attributeは初めてなのでヒットしませんでした
ありがとうございました
今後ともよろしくお願いいたします
No.1
- 回答日時:
いつもお世話になります
URLのご紹介ありがとうございます
OfficeTANAKAさんの資料はよく参考にさせて頂いています
分かり易くて良いですよね
また、いろいろ教えてくださいね
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/10/26 17:14
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
excelマクロ 冒頭3文字が一致す...
-
会社のネットワーク上のファイ...
-
VBSでファイル名と同じフォルダ...
-
デスクトップの画像をhtmlに表...
-
Access VBA で フォルダ権限...
-
パス名に2バイト文字(マルチバ...
-
バッチファイルにて連番付きフ...
-
あるフォルダーのファイルを違...
-
EXCEL VBA フォルダ保存について
-
META-INFフォルダの置き場所に...
-
エクセル マクロで指定フォル...
-
【マクロ】ファイル名の日付に...
-
VBA エクセルシートをコピーし...
-
VB.NRT FolderBrowserDialogを...
-
フォルダ名に番号を連番でつけたい
-
Excelのハイパーリンクについて...
-
ExcelVBAでフォルダへのハイパ...
-
ファイル名と同名のフォルダを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
【マクロ】ファイル名の日付に...
-
Access VBA で フォルダ権限...
-
デスクトップの画像をhtmlに表...
-
パス名に2バイト文字(マルチバ...
-
VBA フォルダ名に特定の文字を...
-
VBA フォルダの複数選択ができない
-
Excelで指定したフォルダに保存...
-
excel VBA Dirにて検索したフォ...
-
エクセルマクロで指定フォルダ...
-
ディレクトリ名変更してコピー...
-
サーバ内のフォルダ名と各フォ...
-
VBプロジェクトでのフォルダ構...
-
excelマクロ 冒頭3文字が一致す...
-
Excelのハイパーリンクについて...
-
フォルダの場所を可変にしたい...
-
VB.NRT FolderBrowserDialogを...
おすすめ情報