![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
No.3ベストアンサー
- 回答日時:
大変失礼いたしました。
No2の方のご指摘の通り、ループ内で再度ディレクトリ名を取得する必要があります。
あとはフォルダを識別するたにGetAttrを使う必要もあるかも。
(No2の方の意見を尊重して)
下記のソースをご覧ください。
参考URL:http://www.geocities.co.jp/SiliconValley/4805/vb …
再度ありがとうございます。解決致しました。大変勉強になりました。
これを応用して、いろいろと勉強したいと思います。ありがとうございました。
No.2
- 回答日時:
よーくソースを見てください。
strDirNameはループ内で変更されているわけではないですよね。ループ前で取得されてから変更されていないのだから無限ループして当然です。
質問の回答を鵜呑みにするだけではなく自分でもよく考えましょう。スキルアップになりません。
loopの前に
strDirName = Dir()
と入れてみればループは終わります。
でもこれではFile名も取得してしまいます。
ではどうするか。
これ以上の説明は非常に長くなりそうなので、以下のサイトが参考になると思います。
参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
No.1
- 回答日時:
strDirName = Dir("C:\path",vbDirectory)
do while strDirName <> ""
debug.print strDirName
loop
のようなかんじで、どうですか?
この回答への補足
考えてくださって、ありがとうございます。
Dim strDirName As String
strDirName = Dir("C:\user", vbDirectory)
Do While strDirName <> ""
Debug.Print strDirName
Loop
具体的にはこのように書いたところ、延々とuserのみしか
取得できません。どこかおかしいのでしょうか?
お時間あれば考えてくだされば助かります。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ階層が深いファイルの拡張子の一括変換 2 2022/12/23 18:40
- サーバー windowsサーバの権限設定、フォルダ削除できないアカウントを作りたい 1 2023/04/07 09:58
- Windows 10 ファイルエクスプローラーでフォルダを閉じる操作について 2 2022/10/15 11:06
- Excel(エクセル) VBA 最新のフォルダ取得 1 2022/04/15 15:51
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- システム パソコンの共有フォルダ移動について教えてください。 2 2022/04/07 10:14
- システム vba シートの追加について 2 2023/05/17 15:58
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
エクセル関数で1〜12の数字がル...
-
範囲指定したセルを1つずつ飛...
-
UWSCの終了の仕方
-
ループ内での条件処理
-
アクティブセルから、A列最終行...
-
VBAでの一時停止と再開の方法
-
VBA for i=1 to lastrow
-
VBAで3秒だけ時間を止めたい
-
sscanfより速い方法について。
-
繰り返し処理で50音順にする方法
-
DoEventsが必要な理由について
-
比較演算子に上限や下限を抑え...
-
csh foreachで「*」でエラ...
-
forループは何故、forなのですか?
-
VBS オーバーフローの原因
-
データベースをEOFまでループさ...
-
VBA横データを縦にしたいです
-
フォルダ内の全フォルダ名を取...
-
テキストファイルの行数を指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
範囲指定したセルを1つずつ飛...
-
Escキーを押すと、中断する時と...
-
DOSコマンドのループ内のTIMEコ...
-
GIFアニメをループさせたくない
-
VBAで3秒だけ時間を止めたい
-
乱数の桁数指定、または範囲指定。
-
アクティブセルから、A列最終行...
-
VBA for i=1 to lastrow
-
テキストボックスの名前に変数...
-
vbscriptでIE自動入力(途中で...
-
エクセル関数で1〜12の数字がル...
-
エクセルの当番表を作っていま...
-
Do whileでExitせず、ループの...
-
VBA Dir関数でファイルをループ...
-
vb.netからエクセル関数書き込み
-
ループフリー
おすすめ情報