• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAでセルの値利用してフォルダ間の移動)

ExcelVBAでセルの値利用してフォルダ間の移動

このQ&Aのポイント
  • ExcelVBAを使用して、セルの値を利用してフォルダ間の移動を行いたいです。
  • 具体的には、フォルダAからフォルダBへの移動を行いたいですが、移動させたいファイルのファイル名はセルA1からA10に記載されている10個のファイルです。
  • ファイル名の先頭の4文字が一致していれば、それ以降の文字列はワイルドカード「*」で指定したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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」をコードで継ぎ足すようなこともできますね。

pu-2
質問者

お礼

keithin様 すみません。  「1111」の後ろに「*」をつけ忘れていました。 出来ましたぁ(^O^)/ すごく、すごく助かりました。 すばらしいです。 ありがとうございました。

pu-2
質問者

補足

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東京太郎」を 一致させることは できるのでしょうか? ワイルドカードなどの使用は必要ないのでしょうか? 本当にお手数おかけいたしますが、 数日 テキストやネットで検索し 自分なりに色々挑戦してみましたが、駄目なんです。 どうか どうか よろしくお願いします。

関連するQ&A

専門家に質問してみよう