- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAでセルの値利用してフォルダ間の移動)
ExcelVBAでセルの値利用してフォルダ間の移動
このQ&Aのポイント
- ExcelVBAを使用して、セルの値を利用してフォルダ間の移動を行いたいです。
- 具体的には、フォルダAからフォルダBへの移動を行いたいですが、移動させたいファイルのファイル名はセルA1からA10に記載されている10個のファイルです。
- ファイル名の先頭の4文字が一致していれば、それ以降の文字列はワイルドカード「*」で指定したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>ファイル名「1111*」となっている部分に セルのA1からA10にあるものを自動で取得させたい その通りに行います。 つまりA1以下に1111*などのように記入してあるとします。 sub macro1() dim s1 as string dim s2 as string dim fso as object dim h as range s1 = "c:\Users\aaa\Desktop\A\" s2 = "c:\Users\aaa\Desktop\B\" set fso = createobject("Scripting.FileSystemObject") for each h in worksheets("Sheet1").range("A1:A10") fso.movefile s1 & h.value & ".xlsx", s2 next set fso = nothing end sub #さくっと応用すれば,例えばセルには「1111」だけを記入しておき,「*.xlsx」をコードで継ぎ足すようなこともできますね。
お礼
keithin様 すみません。 「1111」の後ろに「*」をつけ忘れていました。 出来ましたぁ(^O^)/ すごく、すごく助かりました。 すばらしいです。 ありがとうございました。
補足
keithin様 早速のご回答すごくうれしいです。ありがとうございます。 ただ、上記で実行してみましたが、 >fso.movefile s1 & h.value & ".xlsx", s2 で デバック。 ファイルが見つかりません。に なります(>_<) 私の行った操作は ・Book1のSheet1のA1に「1111」 A2に「1112」 と データを入力 ・S1 S2 を実際のフォルダパスを入れた。 S1のフォルダには「1111東京太郎」 「1112北海花子」 「1113青森次郎」 ・range("A1:A2") と 以上の部分だけを編集し実施しました。 あと、私はVBA初心者で本当に初歩的な質問ですが、 >& h.value & ".xlsx" 上記の内容で セルには「1111」 実際フォルダ内は 「1111東京太郎」を 一致させることは できるのでしょうか? ワイルドカードなどの使用は必要ないのでしょうか? 本当にお手数おかけいたしますが、 数日 テキストやネットで検索し 自分なりに色々挑戦してみましたが、駄目なんです。 どうか どうか よろしくお願いします。