Excel VBA質問箱 IV

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

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


22 / 13645 ツリー ←次へ | 前へ→

【82306】フォルダの一括選択 なんでやねん 24/6/5(水) 16:08 質問[未読]
【82307】Re:フォルダの一括選択 マナ 24/6/5(水) 19:39 発言[未読]
【82308】Re:フォルダの一括選択 なんでやねん 24/6/6(木) 7:15 お礼[未読]
【82309】Re:フォルダの一括選択 なんでやねん 24/6/6(木) 11:43 お礼[未読]

【82306】フォルダの一括選択
質問  なんでやねん  - 24/6/5(水) 16:08 -

引用なし
パスワード
   (現状)フォルダをひとつづつ選択しそのフォルダパスをフォームのリストボックス(UFフォルダ選択.LB)に登録しています。
(やりたいこと)表示されたフォルダを一括選択したい。可能でしょうか?可能ならその方法をお教えください。
(現状のコード)
Sub 起動()
Dim fldr As FileDialog
Dim sItem As Variant
Dim continue As Boolean

MsgBox "対応するデータフォルダを選択してください。"

Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
  With fldr
    .Title = "データフォルダを選択してください"
    .AllowMultiSelect = True
    continue = True
    While continue
    If .Show = -1 Then
      For Each sItem In .SelectedItems
        UFフォルダ選択.LB.AddItem sItem
      Next sItem
    End If
    continue = MsgBox("選択を続ける", vbYesNo) = vbYes
    Wend
  End With

UFフォルダ選択.Show
  Set fldr = Nothing
End Sub

【82307】Re:フォルダの一括選択
発言  マナ  - 24/6/5(水) 19:39 -

引用なし
パスワード
   ▼なんでやねん さん:

filesystemobjectで検索してみてください。

Sub test()
  Dim fdg As FileDialog
  Dim fso As Object
  Dim f As Object
  Dim p As String

  Set fdg = Application.FileDialog(msoFileDialogFolderPicker)
  If Not fdg.Show Then Exit Sub
  
  Set fso = CreateObject("scripting.filesystemobject")
  
  For Each f In fso.getfolder(fdg.SelectedItems(1)).subfolders
    p = f.Path & "\分析.csv"
    MsgBox p
  Next
  

End Sub

【82308】Re:フォルダの一括選択
お礼  なんでやねん  - 24/6/6(木) 7:15 -

引用なし
パスワード
   マナさん
"filesystemobject"で検索しました。
難解でしたので、生成AI(無料)に提示していただいたコードの解説をかけました。
どちらも私のレベルでは理解不能でしたが、
検索結果と解説を参考にして編集してみます。
成果が出ましたらお伝えします。
一旦、ありがとうございました。

【82309】Re:フォルダの一括選択
お礼  なんでやねん  - 24/6/6(木) 11:43 -

引用なし
パスワード
   マナさん
下記の通り編集し動作を確認しました。
(準備)提示していただいたコードは、選択したフォルダ内のサブフォルダを一括選択する為、専用フォルダを用意し、そこにデータファイルの入ったフォルダをダウンロードし処理することにしました。
(コード編集)リストボックスに追加したフォルダ(パス)はフォルダ毎に処理するため
  For Each f In fso.getfolder(fdg.SelectedItems(1)).subfolders
    UFフォルダ選択.LB.AddItem f
  Next
としました。
ありがとうございました。
***************************************************************
Sub 起動()
  Dim fdg As FileDialog
  Dim fso As Object
  Dim f As Object
  Dim p As String
  Dim continue As Boolean

  continue = MsgBox("データフォルダを選択してください。", vbYesNo) = vbYes
   If Not continue Then
    Exit Sub
   End If
 
  Set fdg = Application.FileDialog(msoFileDialogFolderPicker)
  If Not fdg.Show Then Exit Sub
 
  Set fso = CreateObject("scripting.filesystemobject")
 
  For Each f In fso.getfolder(fdg.SelectedItems(1)).subfolders
    ' p = f.Path & "\分析.csv"
    UFフォルダ選択.LB.AddItem f
  Next

 UFフォルダ選択.Show
 Set fdg = Nothing
End Sub

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