• 締切済み

ファイル名を指定しないVBAは?

既に開いているエクセルファイル(元ファイル)があり、 そこに、別のエクセルファイル(後ファイル)を開いてその情報を 「元ファイル」に取り込んだら、自動で「後ファイル」が閉じるように VBAマクロを組みました。 が、「後ファイル」は常に同じなので、ファイル名を指定して 開閉するようにしていますが、 「元ファイル」は、名前が常に違います。 ファイル名を指定せず、先に開いているファイルをActiveにするには どうしたらいいですか? 今は、新しいファイルを作成して、エラーが起こったら Windows("○○○.xls").Activate ○○○の部分に新しいファイル名を入れています。 よろしくお願いします。

みんなの回答

  • zorac
  • ベストアンサー率20% (6/30)
回答No.1

こんにちわ。 先ず最初にお断りを。 今現在、excelを触れる環境でないので、動作確認できません。無責任なようですが単なる1アイディアとしてお聞き下さい。 そのマクロを動かす時は、かならず「元ファイル」がアクティブですよね? であれば、コードのあたまでActiveBook(あるいはその名前)を適当な変数に格納しておいて、「後ファイル」からデータをコピーしたあとにその変数を呼び出してアクティブにしてやればいいんじゃないですかね。 それから、御質問のカテゴリを Microsoftアプリケーションとかで質問しなおした方が、適切なアドバイスを得易いように思います。

tibi-maru
質問者

お礼

どうもありがとうございました。 参考にさせていただきます。

関連するQ&A

  • VBAでのファイル指定でのWindowsの意味

    こんばんは。 自動マクロにてVBAを作成し、それをいじって勉強している 初心者です。 2つのファイルの中身が同じかどうか比較をするマクロを作成したく、 いろいろためしています。 まず比較したい2つのファイルを開いた状態でいろいろ試して いたところ 自動マクロではWindows("Book1.xls").Activate と記述されていました。 ここでいうWindowsというのはどういった意味でしょうか? Cドライブという意味ですか? もしネットワークにつながっている環境で上記記述を するとネットワークにあるBook1というファイルも 何か操作されてしまったりするのでしょうか? Windowsと記述されている部分が \\デスクトップ\○○("Book1.xls").Activate だったら、デスクトップにあるファイルを操作してるんだな、 とわかるのですが。。。 初歩的質問で申し訳ありません。教えてください。

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • EXCEL VBA セルからファイル名を読み込む

    EXCEL VBAについての質問です 同じ処理を名前の違う複数のファイルで行いたいと思っています そこで、セルA2へファイル名の『○○.xls』○○部分だけをそれぞれのファイルに書き込んでおき、マクロは共通にしてファイル名をそれぞれのファイルから読み込んで実行したいと思っています。 良い方法を教えてください。 Workbooks("200809.csv").Activate Sheets("200809").Select Range("C3:C33").Copy Windows("○○.xls").Activate'←ここをファイルにあわせて変更できる形にしたい Sheets("報告書").Select Range("G5:G35").Select ActiveSheet.Paste Windows("200809.csv").Activate Range("K3:K33").Copy Windows("○○.xls").Activate’←ここ Sheets("報告書").Select Range("I5:I35").Select ActiveSheet.Paste Workbooks("200809.csv").Close SaveChanges:=False よろしくお願いします。

  • Excelマクロ/ファイル名を指定してインポート

    テキストファイルからExcelへインポートする作業を自動化させたいのですが。 毎回インポート元のファイル名(格納しているフォルダは同じです)が異なるので、マクロ記録ではうまく作成できません。VBAでないと無理でしょうか? できればファイル名をその都度入力するようなダイアログボックスが表示されれば理想的です。VBA初心者なので教えてください。

  • <ACCESS VBA -> EXCEL>getObjectしたEXCELファイルのシートを指定したい

    ACCESSのVBAマクロでEXCELファイルを指定してデータを取得しようとしています。 GetObject("C:\ファイル名.xls", "Excel.Sheet") でEXCELファイルを取得するまでは良いのですが、そのファイルのシートを指定する方法がわかりません。 基本かもしれませんが、ご教示をお願いします。

  • カレントブックのファイル名の取得

    早速ですが。 カレントブック(例:test.xls)の名前をどうやって取得できますか。 マクロ(code)にカレントブック名を固定値(test.xls)で指定していますが、 下記のように、改善したいと思いますが、 ================================= test.xlsのマクロに PCvsFileName="test.xls" Windows("PCvsFileName").Activate ================================= 該当xlsファイル名は常に変わるから、カレントブックのファイル名の取得方法が 知りたいです。 よろしくお願いします。

  • VBAでファイル名を変更したい

    EXCEL2003のVBAでブックを連続して保存をするものを作成したのですが、スキルが足りないため、ファイル名が数字になってしまい、リネームをしたいのですが、出だしからつまずいております。 リネームをしたいブック(ファイル)は一つのフォルダに入っており、 excelのシートには旧ファイル名と新ファイル名の一覧をつくり VBAを実行すると一覧に載っているブック名が変更される というものを作りたいのですが、可能でしょうか。 一覧は 旧ファイル名  新ファイル名 1.xls      1北海道.xls 2.xls      2青森.xls という感じです。 フリーのリネームソフトではなく何とか自力でやりたいと思っております。 お力をお貸しください。 よろしくお願いいたします。

  • エクセルVBAで、元になるファイルをコピーし、ファイル名を連続した日付

    エクセルVBAで、元になるファイルをコピーし、ファイル名を連続した日付としたいのですが、 ボタン一つで、ファイル名を、2010.1.1請求書.xls~2010.1.31請求書.xlsとして、 2010.1.1請求書のシート1のA1セルに、その日付2010.1.1を入力保存し、ファイルを連続作成する コードはどのようになるのでしょうか?  VBA初心者です。ご教授お願いします。

  • Excel マクロでファイル名を変数に・・・

    初心者です。検索してもわからなかったので質問です。 下記のようなマクロの処理で「AAA」というファイル名のExcelに「2.xls」からデータをコピーし貼り付けています。    ・    ・ Windows("AAA.xls").Activate Rows("4:4").Select Selection.Insert Shift:=xlDown Windows("2.xls").Activate Range("C6").Select Selection.Copy Windows("AAA.xls").Activate Range("A4").Select ActiveSheet.Paste Windows("2.xls").Activate Range("C7").Select Application.CutCopyMode = False Selection.Copy    ・    ・ 今回は「2.xls」ではなく「3.xls」、「4.xls」、・・・といったように違うファイル名で同じ処理を行ないたいので「2」と指定するのではなく「(ファイル名).xls」といった形にしたいのですが、それは可能なのでしょうか。 ご意見宜しくお願いいたします。

専門家に質問してみよう