http://officetanaka.net/excel/vba/tips/tips95.htm
を参考に、
フォルダの一覧を取得するコードを作ってるのですが
Sample4ならエラーにならずにフォルダの一覧を取得できるのですが、
フォルダ名にドットがある場合も取得されてしまうので、Sample6を使いたいのですが、
If GetAttr(buf) And vbDirectory Then
の部分で、
「53ファイルが見つかりません。」
のエラーになります。
なぜでしょうか?
No.3ベストアンサー
- 回答日時:
参照ページのSample6を修正なくそのまま使ってる場合は
>「53ファイルが見つかりません。」
このエラーは出ないはずです。
例えば
Sub Sample6()
Dim buf As String, msg As String
buf = Dir("C:\TEST\*.*", vbDirectory)
Do While buf <> ""
If GetAttr(buf) And vbDirectory Then
If buf <> "." And buf <> ".." Then msg = msg & buf & vbCrLf
End If
buf = Dir()
Loop
MsgBox msg
End Sub
このようにDir関数で、カレントフォルダではなく、特定フォルダを指定するように修正してあると
ご提示のエラーになります。
変数bufにはDir関数の結果、ファイル名が入ります。
これに対して「GetAttr(buf)」この箇所を修正していないと、
ファイル名しか指定していない事になりますから、
カレントフォルダ&ファイル名になって、「53ファイルが見つかりません。」となります。
参照ページの冒頭に
>なお、カレントフォルダはC:\Workにしてあります。
とありますね。
フォルダ指定を省略してありますから、Dir関数もGetAttr関数もカレントフォルダ
つまり「C:\Work」に対する処理とみなされます。
修正するなら両方必要。
buf = Dir("C:\TEST\*.*", vbDirectory)
If GetAttr("C:\TEST\" & buf) And vbDirectory Then
ただ、対象フォルダにUnicode文字を使ったファイル名があると、
GetAttr関数のところで今度は「52 ファイル名または番号が不正です」のエラーになります。
直下のフォルダだけ取得するようなケースなら「FileSystemObject」を使ったほうが楽かもしれません。
Sub try()
Const p = "C:\TEST\"
Dim f As Object
Dim s As String
For Each f In CreateObject("scripting.filesystemobject").GetFolder(p).SubFolders
s = s & f.Name & vbLf
Next
MsgBox s
End Sub
No.2
- 回答日時:
No.1
- 回答日時:
こんにちは。
フォルダ内に、読み取り専用フォルダがあるとエラーがおきますので、
Sub Sample6()
Dim buf As String, msg As String
Dim zokusei As Integer, enzan As Integer
Dim Path_Str as String
Path_Str = "C:\Documents and Settings\" '最後のフォルダが読み取り専用フォルダの場合は、\をつけないとエラーがおきます
buf = Dir(Path_Str, vbDirectory + vbHidden) '←読み取り専用追加
Do While buf <> ""
zokusei = Getattr(Path_str & buf)
enzan = zokusei And 16
If enzan = 16 Then
If buf <> "." And buf <> ".." Then msg = msg & buf & vbCrLf
End If
buf = Dir()
Loop
MsgBox msg
End Sub
読み取り専用フォルダがあるとエラーになるのですか。
知りませんでした。
vbHiddenを追加したらうまく行きました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
VBA GetAttrについて教えてください
Visual Basic(VBA)
-
VBAでファイルパスが長すぎてコピー時のエラー対策
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
フォルダ内のPDFファイル名を変...
-
フォルダにリンクを貼りたい
-
会社のネットワーク上のファイ...
-
【ExcelVBA】一覧表の記載に従...
-
Debug フォルダは消していいの?
-
VBAでOutlookのサブフォルダをm...
-
VBA 最新のフォルダ取得
-
ファイル保存時のダイアログ表...
-
フォルダ選択処理について
-
フォルダ内のファイルの作成日...
-
ExcelのVBAでの複数階層からの...
-
(UWSC)ファイルを作るときに、...
-
バッチファイルで指定フォルダ...
-
VBA フォルダ名と画像ファイル...
-
フォルダ選択ダイアログ:ネッ...
-
条件に合うフォルダが存在する...
-
API関数(DLL)の呼び出しにお...
-
GetAttrが原因?
-
バッチファイル フォルダを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
Excelのハイパーリンクについて...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
excelマクロ 冒頭3文字が一致す...
-
会社のネットワーク上のファイ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
VBA フォルダ名に特定の文字を...
-
【マクロ】ファイル名の日付に...
-
フォルダを開いて、閉じるのプ...
-
パス名に2バイト文字(マルチバ...
-
カレントフォルダって?
-
保存先のフォルダ名を指定した...
-
Excelで指定したフォルダに保存...
-
Debug フォルダは消していいの?
-
ExcelのVBAでフォルダ指定がで...
-
C ファイル出力で、フォルダが...
-
vbsで選択ダイアログを表示した...
おすすめ情報