戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更

    [191424] ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ めぐりん -(2020/02/21(13:03))
    □U R L/
      以下のファイル名書き出しマクロ→フォルダ名書き出しマクロに変更に変更したいのですが、何分初心者のためよくわかりません。
      ご教授よろしくお願いいたします。
      -------------------------------------------------------------------------------
      Sub ファイル名一覧作成()
          Dim Sh As Object        '' Shell32.Shell
          Dim fdRoot As Object    '' Shell32.Folder
          Dim fl As Object        '' Shell32.FolderItem
          Dim rw As Long
          Const ixPhotoDate As Long = 25
          
          Set Sh = CreateObject("Shell.Application")
          
          Set fdRoot = Sh.BrowseForFolder(0, "Select Folder", &H11)  '' &H1:Object は非表示。&H10:パス入力欄を表示。
          If fdRoot Is Nothing Then Exit Sub
        
          rw = 4
          For Each fl In fdRoot.Items
              If fl.IsFolder = False Then
                  Cells(rw, 1).Value = fl.Name
                  Cells(rw, 2).Value = fdRoot.GetDetailsOf(fl, ixPhotoDate)
                  rw = rw + 1
              End If
          Next
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191428] Re[1]: ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更-

    記事引用/メール受信=OFF■

    □投稿者/ サンダー -(2020/02/21(17:30))
    □U R L/
       ht tps://easyvbs.hatenablog.com/entry/2019/03/08/214917
      
      If fl.IsFolder = False Then 'フォルダーでなければ だと思います
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191430] Re[2]: ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/21(20:28))
    □U R L/
      質問の趣旨がよくわかりませんでした。
      
      現在のコードは、写真ファイルの撮影日の一覧を作成するものかと推測します。
      これとはまったく無関係に、フォルダのサブフォルダを得るコードを
      作りたいということですか?(それならサンプルを提示する必要はないのでは?)
      
      そうではなくて、今のものはフォルダ直下のファイルたちだけだったが、
      サブフォルダや更にそのサブフォルダにあるファイルに対しても同じ処理をしたい、
      ということですか?
      
      それによって回答は変わって来ます。
      普通にフォルダ階層を降りていくだけなら、FSO(File System Object)を
      使うのが定石でしょう。
      
      提示されているShellオブジェクトを使うものは、
      Webとの関係で使われることの多いもので、
      特定目的以外で使われることは乏しいと思います。
      
      また、時に想定外の動作もします。
      例えば、質問に関連した例で言えば、
      ZIPファイルも IsFolderがTrueを返すと言った思いがけない動作もします。
      
      ・そうしたことを避けようとするならFSOですし、
      ・GetDetailsOfの使用が不可避なので、できれば同じ仕組みのなかでやりたい、
        ということなら、その方向で考えるかでしょう。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191434] Re[3]: ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/22(11:24))
    □U R L/
      現在のShellオブジェクト使用の延長線上で対応するなら、
      IsFolderプロパティがTrueであることのほか、
      Typeプロパティが "ファイル フォルダー" と一致するかどうかで判断してください。
      
          For Each fl In fdRoot.Items
              If fl.IsFolder = True And fl.Type = "ファイル フォルダー" Then
                  Cells(rw, 1).Value = fl.Name
                  Cells(rw, 2).Value = fl.Path
                  rw = rw + 1
              End If
          Next
      
      これでリクエストには応えたことになりますが、
      質問は小出しにしないほうがよいと思います。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191538] Re[4]: ファイル名書き出しマクロ→フォルダ名書き出しマクロに変更-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ めぐりん -(2020/02/27(09:40))
    □U R L/

      γさま、サンダー様
      ご教授いただきありがとうございました。
      助かりました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G