Excelである文言の一覧があります。
特定フォルダからこの一覧を含むファイルを移動用フォルダを作成して移動したいと考えております。
■Excelファイル(A列)
AA111000
AA111002
■特定フォルダにあるファイル名
AA111000_りんご.pdf
AA111001_みかん.pdf
AA111002_ばなな.pdf
AA111003_いちご.pdf
■移動用フォルダ
不要
●希望結果(フォルダ構成)
AA111001_みかん.pdf
AA111003_いちご.pdf
不要
┗AA111000_りんご.pdf
┗AA1110002_ばなな.pdf
Excelにてバッチを含むVBAを作成して実行でも、
バッチファイルを手動で作成して実行でも構いません。
このような操作が可能かどうか、
可能であればどのようにすればよいか教えていただけないでしょうか。
No.5ベストアンサー
- 回答日時:
#1で想定したコードサンプルです
参考サイトなどと合わせて実行コード内の処理をステップ実行などで
確かめながら理解する方が早いかも知れませんしカット&トライの時代ではないのかも知れませんね。
Sub example()
Dim fso As Object, fol As Object, f As Object
Dim ary As Variant, i As Long
Dim strFolPath As String, strMoveFol As String
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then 'ダイアログでファイル郡のフォルタパスを取得
strFolPath = .SelectedItems(1)
Else
Exit Sub
End If
End With
strMoveFol = strFolPath & "\不要" '同じフォルダの移動フォルダ名(変更箇所)
Set fso = CreateObject("Scripting.FileSystemObject")
Set fol = fso.GetFolder(strFolPath) ' フォルダ
If Not fso.FolderExists(strMoveFol) = True Then
fso.CreateFolder (strMoveFol) '無ければ移動先フォルダ作成
End If
'キーワードリスト作成(2次元配列で作成)
With ActiveSheet 'アクティブシートのA1セルから最終行(変更箇所)
ary = .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp))
End With
For Each f In fol.Files ' フォルダ内のファイルを順次取得
For i = 1 To UBound(ary, 1) '配列内をループ
If f.Name Like ary(i, 1) & "_*" Then 'ファイル名をlikeでパターンマッチ
f.Move (strMoveFol & "\") '同名で移動
'Exit For 'アンダーバー前の値が複数ある場合適当でない
End If
Next
Next
Set fol = Nothing
Set fso = Nothing
End Sub
No.4
- 回答日時:
補足要求です。
1.excelファイル A列に
AA111000
AA111002
が、ありますが、A1からデータが開始していますか。
それとも、A1は見出しで、A2からデータが開始していますか。
2.上記のシート名は何でしょうか。
3.マクロを組み込むとすれば、上記のexcelファイルに組み込む
ことになりますが、よろしいでしょうか。
(組み込んだexcelファイルの拡張子はxlsmになります)
4.特定フォルダの直下に”不要”フォルダがあると理解しましたが、
間違いないでしょうか。
1)ExcelファイルはA1セルから開始しています。
2)VBAで「除外」という名前のシートを作成し、A1セルから該当する番号(AA111000など)を入れています。
3)マクロの組み込みは問題ありません。この手段以外にもマクロやVBAを組んでいるので問題はありません。
4)「不要」フォルダは存在します。
No.3
- 回答日時:
#1です
今一度、ご確認したいのですが、
例を見るとファイル名での振り分けになっていましたので
ファイル名を念頭に回答いたしましたが、確かに 文言 含むファイル・・
ファイル名で振り分けではないのですか?
ファイル内のドキュメント文字列が振り分け対象キーワードなのですか?
PDFの文字列を取得となると#2様が示されている通り Acrobat Proや
Pythonなどのライブラリーを使ったりする必要があると思います、保護の問題もあるかな・・
私の文言が分かりにくくて申し訳ございません。
PDFファイル内にもAA111000のような文言が含まれていますが、
PDFファイル名に含まれている場合のみで考えておりました。
※PDFファイル内に書かれている番号(AA111000)と
PDFファイル名が異なる場合は別手段でPicUPしております。
説明の補足でした。
No.2
- 回答日時:
こんにちは
試してみてはいませんけれど・・・
ファイル名ではなく、ファイル内の文書で文言の有無を検索するということですよね?
バイナリ形式のファイルだと、対応ソフトで開いてから検索しないと上手くいかないものと思われます。
(テキストファイルのみが対象ならバッチでも良いのでしょうけれど・・)
どのようなファイルが対象なのでしょうか?
Office系はそのままVBAでもなんとかなりますが、例示なさっているのがpdfなので・・
.psdや.aiなども対象なのでしょうか? まさか、画像ファイルは対象外とは思いますが・・
各ファイルを検索する際に、拡張子を調べ、それに応じたソフトで開き、検索ワードの有無を調べる必要がありそうに思われます。
そのために、まずは対象となりそうなファイルを列挙して、それぞれの検索方法を調べることになるでしょう。
この部分さえクリアできれば、後は単純に
『特定フォルダ内の各ファイルを順に検索して、キーワードが存在すれば移動用フォルダに移動』
というループに組み込めばよさそうですので。
docx、xlsx、pptx、txt、csv などに関しては(質問者様にとって)問題はないものと推測しますので、その他のファイルで、例えばご例示のpdfの場合には、
https://fastclassinfo.com/entry/vba_pdf_text_ext …
のような感じで検索が可能です。
それ以外のファイルの種類に関しても、同様に個別に処理を作成しておいて、拡張子によって振り分ければなんとかなるのではと思います。
残念ながら、全てのソフトが検索に利用できるdll等を用意してくれているとは限りませんので、難しい種類のものも存在するであろうと推測されます。
コード内に扱える拡張子を列挙しておいて、それ以外のファイルが存在した場合には、スキップするなどが必要になるのではないでしょうか。
ご回答ありがとうございます。
フォルダにPDFファイルが500個以上あり、
特定の名前が入っている約半数のファイルを除外したいというのが目的でした。
フォルダに入っているのはPDFファイルのみです。
除外リストはExcelに1セルずつ入っているので、
それをテキストに書きだしてバッチファイルと考えておりました。
No.1
- 回答日時:
こんにちは
>可能であればどのようにすればよいか教えていただけないでしょうか。
先ずは 可能です
キーになるワードのリストを作成して
リストでなくとも列範囲をループする処理で値を取得する方法も有ります
各キーワードを対象ファイル名と比較(instrやLike)などをしてTrueの場合に
CreateObject("Scripting.FileSystemObject").Move(移動元フルパス & \)
や
Name 移動元フルパス As 移動先フルパス のようにステートメントを実行する形になると思われます
対象ファイル名と比較する場合、フォルダー内すべてのファイルに対して繰り返し処理をする(Trueの特ファルダ内ループから一旦抜ける)
具体的なコードは、ご質問にコードなどの記載がなくご質問者様のスキルなどが不明の為割愛します
(実際に書いたコードなどを示されると躓いている箇所やアドバイスもし易いですね)
参考サイトでご確認ください
現場で使える! Excel/VBA実践ガイド
【VBA】ファイルを移動する【シンプル】
https://excel-vba.work/2020/11/23/%E3%80%90vba%E …
Tipsfound › Excel VBA › ファイルの移動
https://www.tipsfound.com/vba/18008
大体でIT -ちょっと使えるネタを紹介-
【VBA】Rangeで取得したセル範囲をループする【For Eachを使います】
https://daitaideit.com/vba-range-for-each/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Excel(エクセル) excel 別のフォルダから列コピーする方法 8 2022/12/17 16:24
- PDF PDFを自動添付したメールを送信してくれるツールを探しています。 2 2023/02/07 15:19
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
一番最初にネットにつないだのはいつ?
ネットユーザーもいろんな世代が生まれていますが、始めて接続したときのワクワクは同じはず! 人生で一番最初にネットに接続したときの思い出を教えて下さい。
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
【お題】 ・こんなおせち料理は嫌だ
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
VBA フォルダ名に特定の文字を含むフォルダを別フォルダにコピーするコードを教えて下さい
Visual Basic(VBA)
-
サブフォルダ内のファイルを全部移動させたい。
Visual Basic(VBA)
-
サブフォルダー内のPDFファイルを別フォルダにコピーするVBA
Excel(エクセル)
-
-
4
サブフォルダ含むフォルダ内の全ファイルから指定文字列を含んだファイルの情報を一覧出力させたい
Visual Basic(VBA)
-
5
【VBA】PDF出力に任意のファイル名前を付ける方法
Excel(エクセル)
-
6
あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい
Visual Basic(VBA)
-
7
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
8
大量のフォルダからひとつのフォルダにファイルをまとめたい!
その他(ソフトウェア)
-
9
複数フォルダをまとめて移動するバッチ
Windows Vista・XP
-
10
多量のファイルをフォルダに自動振り分けするマクロを教えて下さい。
PowerPoint(パワーポイント)
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
13
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
14
Excel マクロでShearePoint先のフォルダ指定
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スポンジケーキってどのくらい...
-
煮物こんにゃくの冷凍保存について
-
7文字以上のフルーツをできるだ...
-
ハーブソルトを代用できるもの...
-
洋ナシをお弁当に入れたいので...
-
ふにゃふにゃになったキウイっ...
-
Excel MATCH関数で検索範囲内...
-
ヤマザキのクリスマスケーキは...
-
クリスマスケーキのトラブルと...
-
中黒「・」か読点「、」か?
-
北海道では、見かけないもの
-
切ったら梨の真ん中が茶色黒く...
-
スーパーで買った1つ300円の梨...
-
ライム(果物)を漢字になおす...
-
サフランの賞味期限
-
バースデーケーキのいちごが傷...
-
DQNネームですか?
-
EXCELでB1に指定文字が入った場...
-
「であり」と「であって」の使...
-
果物をカット→一晩保存
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
7文字以上のフルーツをできるだ...
-
煮物こんにゃくの冷凍保存について
-
洋ナシをお弁当に入れたいので...
-
スーパーで買った1つ300円の梨...
-
切ったら梨の真ん中が茶色黒く...
-
スポンジケーキってどのくらい...
-
Excel MATCH関数で検索範囲内...
-
中黒「・」か読点「、」か?
-
切った梨の表面に、茶色い斑点...
-
ライム(果物)を漢字になおす...
-
何という名前の虫か教えてください
-
教えてください!!
-
今の若い人達は、松茸はたいし...
-
キウイが苦い。 先ほど、ゴール...
-
北海道では、見かけないもの
-
ハーブソルトを代用できるもの...
-
「であり」と「であって」の使...
-
りんごの皮農薬大丈夫?洗わず...
-
離乳食にローリエ
-
職場で隣の人についてです。飲...
おすすめ情報