特定の文字を含むフォルダをコピーしたいのですが、ワイルドカード(*)の使い方が悪いようでエラーで止まってしまいます。
特定の文字の後に付いている文字にはアンダーバー「_」や数字、文字が混在しています。スペースは含みません。
正しいコードを教えて下さい。
Private Sub CommandButton1_Click()
Dim FSO As Object
Dim wsh As Object
Dim 特定文字 As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
Set wsh = CreateObject("WScript.Shell")
Set 特定文字 = Range("A1")
'Cドライブ「test」フォルダ内にあるフォルダ(特定文字を含むフォルダ名)をデスクトップ「テスト用」フォルダにコピーする
FSO.GetFolder("C:\test\" & 特定文字 & "*").Copy wsh.SpecialFolders("Desktop") & "\テスト用\"
Set FSO = Nothing
Set wsh = Nothing
End Sub
No.1ベストアンサー
- 回答日時:
以下のようにしてください。
特定文字はA1セルに記入されていますが、シート名を指定したほうが確実です。回答では、Sheet1のA1セルとしています。シート名はあなたの環境に合わせて適切に設定してください。
Private Sub CommandButton1_Click()
Dim FSO As Object
Dim wsh As Object
Dim 特定文字 As Variant
Dim folder As String
Dim wfolders As Object
Dim wfolder As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set wsh = CreateObject("WScript.Shell")
Set 特定文字 = Worksheets("Sheet1").Range("A1")
'Cドライブ「test」フォルダ内にあるフォルダ(特定文字を含むフォルダ名)をデスクトップ「テスト用」フォルダにコピーする
Set wfolders = FSO.GetFolder("c:\test").subfolders
For Each wfolder In wfolders
If wfolder.Name Like 特定文字 & "*" Then
wfolder.Copy wsh.SpecialFolders("Desktop") & "\テスト用\"
End If
Next
Set FSO = Nothing
Set wsh = Nothing
End Sub
No.2
- 回答日時:
こんにちは
FileSystemObjectのGetFolderメソッドでは、ワイルドカードは使えません。
https://docs.microsoft.com/ja-jp/office/vba/lang …
ですので、既回答のようにフォルダを調べてピックアップするような方法になろうかと思われます。
一方で、VBAのDir関数であればワイルドカードを使用できますので、質問文にご提示のような考え方で、検索することは可能です。
https://docs.microsoft.com/ja-jp/office/vba/lang …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
VBA フォルダ名に特定の文字を含むフォルダを別フォルダにコピーするコードを教えて下さい
Visual Basic(VBA)
-
excel VBA 特定の文字列を含むフォルダを開く方法
Excel(エクセル)
-
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
-
4
部分検索でフォルダ名を検索するマクロ
Excel(エクセル)
-
5
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
6
VBAでセル値からフォルダ名を取得するコードについて
Excel(エクセル)
-
7
サブフォルダから部分一致のエクセルファイルを検索、選択して開くマクロについて
Excel(エクセル)
-
8
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
【マクロ】ファイル名の日付に...
-
ExcelのVBAでフォルダ指定がで...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
ファイル名と同名のフォルダを...
-
Excelで指定したフォルダに保存...
-
ファイル名から該当フォルダへ移動
-
多量のファイルをフォルダに自...
-
空のフォルダの判定
-
パス名に2バイト文字(マルチバ...
-
保存先のフォルダ名を指定した...
-
バッチファイルで指定フォルダ...
-
【VBS】古い日付のフォルダを削...
-
言語[C#]..フォルダ選択ダイア...
-
エクセルマクロで指定フォルダ...
-
ThisWorkbookがあるフォルダ更...
-
フォルダ内のファイルの作成日...
-
バッチファイルにて連番付きフ...
-
フォルダに一括でファイル振り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
windowsでテキストファイルの各...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA フォルダ名に特定の文字を...
-
Excelのハイパーリンクについて...
-
フォルダ内のPDFファイル名を変...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
保存先のフォルダ名を指定した...
-
多量のファイルをフォルダに自...
-
パス名に2バイト文字(マルチバ...
-
ディレクトリ名変更してコピー...
-
C ファイル出力で、フォルダが...
-
Access VBA で フォルダ権限...
-
サーバ内のフォルダ名と各フォ...
-
フォルダにリンクを貼りたい
-
vbsで選択ダイアログを表示した...
おすすめ情報