• 締切済み

エクセルのVBA ファイルの移動

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

VBAというよりも、VBSのFSOという、エクセルVBAを補完してくれるソフトをつかえばわかりやすいのでは。VBAに含まれているとしている向きもあるが。 ーー 例えば、Googleで、「vbs fso ファイル移動」で照会し、出てくる記事の、例えば http://www.whitire.com/vbs/tips0087.html 「ファイルを移動する」 を使って、FROMとTOに当たる、ファイルのフルパスの文字列をプログラムで作成したら済むことではないか。 その時、現フォルダ(1つ?明記のこと)を、For Eachでループ処理してFROMに当たるファイルを、シートの該当テーブルを作っておいて、探して、見つければよい。 いっそのこと、シートにフルパスで移動前、移動後の対照表を手作業やプログラムなどで、作ってしまうのも、安心できるやり方だろう。

関連するQ&A

  • Excel VBA サブディレクトリの取得について

    Excel VBA についての質問です。 私は、VBAの初心者です。 フォルダ選択ダイアログを開き、あるフォルダを選択させます。 選択したフォルダ配下のファイルとサブフォルダにあるファイル一覧とそのファイルのパス取得したいです。 【例】D:\TEMP\AAA フォルダを選択 D:\TEMP\AAA  D:\TEMP\AAA\BBB\CCC.txt D:\TEMP\AAA\BBB\DDD\EEE.txt D:\TEMP\AAA\BBB\DDD\FFF.txt GGG.txt が存在する。 まず、フォルダAAAまで選択されたら、 以下の結果がエクセルに出力したいです。 BBB         CCC.txt BBB\DDD        EEE.txt BBB\DDD        FFF.txt               GGG.txt うまく伝えないかもしれないですが、ご教授お願いいたします。

  • 【大至急】excel2003 VBAマクロの質問

    excel2003でのVBAマクロを作っているのですが、いまいちよくわからないのです 下記条件を満たすサンプルコードのご教示をお願いします。 ■初期状態 仮にフォルダ、ファイル配置が下記の通りだとします C:\マクロ.xls C:\template.xls C:\aaa\ C:\bbb\bbb_test.xls C:\ccc\ . . . C:\nnn\ ■動作要件 (1)マクロ.xlsは自分のファイルパスを検索する (2)マクロ.xlsと同じフォルダにあるサブフォルダ配下に、各々フォルダ名_test.xlsというファイルを作成する (3)上記(2)で.xlsファイルを作成するとき、template.xlsをコピーして作成する (4)既にサブフォルダ配下に***_test.xlsファイルが存在する場合は作成しない <マクロ実行後の状態> C:\マクロ.xls C:\template.xls C:\aaa\aaa_test.xls ←template.xlsからコピー作成 C:\bbb\bbb_test.xls ←ファイル作成、上書きはしない C:\ccc\ccc_test.xls ←template.xlsからコピー作成 . . . C:\nnn\nnn_test.xls ←template.xlsからコピー作成 (5)上記(1)-(4)を、フォルダがなくなるまで繰り返す 以上です。よろしくお願いします。

  • エクセルのファイルを、A2セルに入っている日付をファイル名として、保存したい。

    エクセルのVBAでファイルに名前を付けて、指定場所に保存したいのですが、過去の質問を読んでもよく分からなかったので教えてください。 A2セルに、2007/07/26 という日付が入っています。 この日付をファイル名として保存したいのですが、日付の形式は20070726とか、070726にしたいです。 ファイルの保存場所パスは、例えば、 S:\AAA\BBB\CCC\DDD というフォルダの中です。 ActiveWorkbook.SaveAs のあとにどのように続ければよいのでしょうか? 丸投げで申し訳ありませんがよろしくお願いいたします。

  • エクセルでファイルをcsv形式で保存するマクロについて

    同様の質問が以前にあったのですが、 どうやら私のは少し違うようなので新規質問として投稿させていただきます。 エクセルファイルを保存する際、保存形式を「テキスト(タブ区切り)(*.txt)」にして、 ファイル名の拡張子の部分だけ(.csv)にして保存するマクロを作成したいです。 しかし、エクセルに付いているオートマクロ機能で記録しようとすると、 ・ファイル名がオートマクロを作成した際に付けたファイル名になってしまう。 ・保存場所がオートマクロを作成した際に保存したフォルダになってしまう。 という問題が発生します。 なので、 ・保存する際のファイル名は現在作業しているファイルの名前をそのまま使用する。 ・保存する際のファイル名の拡張子部分は(.csv)に変更する ・保存場所は現在作業しているファイルがあるフォルダにする(もしくはプログラムで予めパスを指定できる)。 ・保存形式は「テキスト(タブ区切り)(.txt)」 の4つの条件を満たすマクロの作成方法をお教えいただけますでしょうか? すみませんが、よろしくおねがいします

  • EXCEL(VBA)

    EXCELVBAで指定したフォルダ内にtextファイルをまとめるマクロを作成したいと思っています。 条件としましては、フォルダ名の5文字とtextファイルの最初の5文字を照合させて一致した場合そのフォルダにtexitファイルを収納していくといった感じです。 できればソースを教えていただくと助かります。

  • EXCEL VBAで作成した ファイルを 複製できますか?

     EXCEL VBAで 名簿を作成しました。  名簿はMOに 保存しました。 保存したファイルを デスクトップに コピーしました。 しかし、ファイルを開いても、マクロがうまく働きませんでした。 「同じファイル名のファイルがある・・・」のようなメッセージが出てしまいます。  1台のコンピューターだけでなく、複数で使えるようにするには、VBAで作 成したファイルはどのように保存すればよいのでしょうか。教えてください。

  • エクセル VBA ファイルをフォルダへ移動させる

    エクセル VBA 手探り状態です。 001大企業.xls、001中小企業.xls、003大企業.xls、003中小企業.xls、008大企業.xls、008中小企業.xls・・・・というファイルが300ほど企業種類という名前のフォルダにあります。 VBAで企業種類という名前のフォルダの中に、001、003、008・・・というフォルダは作成しました。 (ネットで”フォルダ作成”を検索して、、、自力ではVBAは書けません) それを001という名前のフォルダへは、001大企業.xls、001中小企業.xlsのファイル、003という名前のフォルダへは003大企業.xls、003中小企業.xlsのファイルを、008フォルダへは008大企業.xls、008中小業.xlsファイルを・・・というように、マクロで移動させたいのです。 これらのファイル、フォルダは全て、企業種類というフォルダの中にあります。 VBAを教えていただけましたら嬉しいです。

  • シンクライアントでのVBAによるファイル保存

    ExcelのテンプレートファイルにVBAマクロを記述しています。 VBAにより新しいブックを開き、データを作り込んだ後、テンプレートファイルが置かれているフォルダに保存するマクロを作成しました。 リッチクライアント上では問題なく動くのですが、シンクライアント上で実行すると、  ActiveWorkbook.SaveAs Filename:='フルパスのファイル名'  ※フルパスのファイル名は、"C:\folder\file.xlsx"というような形式になっています。 のところでエラーになってしまいます。 パス付きのファイル名について、作法があるようでしたらお教えいただけますか。 よろしくお願い致します。

  • エクセルのファイルが複数開いてしまう

    エクセルのファイルを開くと何故か複数開いてしまいます。 詳しい状況は、ファイル名 aaa というデータが保存されています。 この aaa のファイルを開くと、何故か aaa1 と aaa2 と2つのデータが勝手に作成されてしまいます。 内容は一緒のようですが、今までにない事例なので早く解消したいのですがどうしたらいいですか? よろしくお願いします。

  • エクセルVBA Application.GetSaveAsFilenameでのフォルダー名指定

    いつも大変お世話になりありがとうございます。 早速ですが、教えてください。 以下のマクロでファイル名を指定して保存させようと思うのですが、デフォルトで表示するフォルダーをたとえば、Cドライブの「AAAAA」という指定はできますでしょうか? また、そのパソコンに「AAAAA」というフォルダーが無かったら、作るようにしたいのですがどう記述すればよいのでしょうか? Sub test() Dim aaa As String aaa = Format(Now, "MMDDHHmm") FName = Application.GetSaveAsFilename(InitialFilename:=aaa & ".csv", FileFilter:="CSVファイル(*.csv), *.csv") '以下略 End Sub