• ベストアンサー
  • すぐに回答を!

VBA エクセル 開いている別ファイルをアクティブにするには?

すみません、よろしくお願いいたします。 <前提> A.xls=コピー元ファイル(マクロを組んでいるのはこちら) 2009・・・.xls ファイル=コピー先ファイル(2009以降はファイル名が変化しますが、必ず頭に2009があります) 同一フォルダ内に上記のファイルがあります。 どちらも開いて、Aファイルのマクロを実行すると、Aのデータをコピーして、2009・・・のファイルに貼りつける。としたいのですが、 (1)ファイル名が変化するので貼り付け先のファイル名をどう指定したらよいかわからない。 (2)フォルダごと、色々な人へ配る予定なので、できればアクティブなファイルという指定をしたい。(他のファイルは開いてないという前提でOKです。) (3)フォルダ内には2009がつく別ファイルもあるので、(2)同様アクティブなファイルという指定をしたいです。 わかるかた、おねがいいたします。 BVA初心者です。 普通のマクロで記録したら、以下のようになりました。 (例) Sub Macro1() ' ' Macro1 Macro ' ' Range("A1").Select Selection.Copy Windows("20091002_2650.xls").Activate '←この20091002_2650.xlsが変化します。 Range("A10:B10").Select ActiveSheet.Paste End Sub

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数3352
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.2
  • MackyNo1
  • ベストアンサー率53% (1521/2850)

ファイル名が変わる場合は(2つしかファイルを立ち上げていないなら)以下のようにINDEX番号で指定してはいかがでしょう。 Windows("20091002_2650.xls").Activate      ↓ Windows(2).Activate 

共感・感謝の気持ちを伝えよう!

質問者からのお礼

できました! すごーくすごーく助かりました!! こんなに簡単に選べるなんて! ありがとうございました!

関連するQ&A

  • エクセルの図形移動で困っています。

    エクセルの図形移動で困っています。 シート2にある図形をシート1にマクロを使って移動(コピー&貼り付け)をしようとしています。 マクロの記録でやった所、以下のような感じになりました。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub しかし、なぜか3回程つかうとシート1に貼り付けされなくなります。 原因はシート2の図形をコピーする時に選択されるところがないからではないか?と思い 色々ネットで調べてみたのですが、まだまだ結論が出ていない状態です。 皆様のお力を貸して頂ければと思います。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select (たぶんここに"図形1)とか入るのでは??と思っています Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub

  • 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 よろしくお願いします。

  • VBA 一個前のシートのデータをコピーして貼付

    (1) Private Sub Workbook_Open()に、マクロの記録で作成した(2)を組み込んで処理をしたいのですが、一つ前のファイルを選択する記述・一つ前のシートを指定する記述が判りません。 ●御教示いただきたい事項 ・(1)で開かれた時、ファイルはマスター.xls が開いていますが、 ファイル名 ccc.xlsが開いた状態にする記述のしかた。     ・(2)が各シートで実行される、共通の記述のしかた。 (1) Private Sub Workbook_Open() Workbooks.Open Filename:="C:\Documents and Settings\aaa\My Documents\bbbマスター\マスター.xls" End Sub (2)  ファイル名 ccc.xlsにマクロの記録で作成 Sub Macro4()     Range("J11").Select     'Sheets("7月")のセル J11 Sheets("6月").Select  Range("I7").Select Selection.Copy Sheets("7月").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub

その他の回答 (1)

  • 回答No.1
  • end-u
  • ベストアンサー率79% (496/625)

Sub Macro1()   ThisWorkbook.Sheets("XXXXX").Range("A1").Copy ActiveSheet.Range("A10:B10") End Sub な感じです。 ThisWorkbook とはマクロがあるBookです。A.xlsの事になります。 シート名が必要なので "XXXXX" の箇所は実際のシート名に変更が必要です。 後は、アクティブなファイルというより、アクティブなシート。と指定してあげれば良いです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございました。 たすかりました!

関連するQ&A

  • VBA_マクロ内でマクロ実行

    独学でVBAをやってる初心者です。 よろしくお願いします。 EXCEL2003を使ってます。 例) <A.xlsファイル> Sub File_A () Workbooks.Open Filename:="B" Call File_B Range("A1").Select Selection.Paste End Sub <B.xlsファイル> Sub File_B () Range("A2:T5").Select Selection.Copy End Sub A.xlsファイルを開きマクロFile_Aを実行させると B.xlsファイルのマクロFile_Bを実行することができません。 どうしたらうまく実行できますか? 教えてください。

  • エクセルマクロVBAコピー領域と貼り付け領域の違い

    お世話になっております。 下記のマクロについて、ご指導願います。 試作研究費マクロ.xlsというファイルのマクロについてです。 試作研究費明細作成マクロ1()を実行すると、試試作研究費マクロ.xlsというファイルに貼りつける ファイルを選択できるようになっており、それを選択すると、試作研究費マクロ.xlsに貼りつけられる 仕組みになっているのですが、エラーになります。 、「コピー領域と貼り付け領域 の違いでデータを貼り付けることが出来ません。 」というメッセージが出てきて処理できません。 デバックによると、下から二行目のActiveSheet.Pasteの部分が黄色く塗りつぶされています。 最近エクセル2007にしたのですが、エクセル2000で作成したマクロは使えないのでしょうか? エクセル2000の時は問題なくできていたのですが。 何が原因なのかわかりかねますので、ご指導の程、よろしくお願いいたします。 Sub 試作研究費明細作成マクロ1() ' ' 試作研究費明細作成マクロ1 Macro ' マクロ記録日 : 2011/11/11 ユーザー名 : ' ' Dim myFile myFile = Application.GetOpenFilename() If myFile = False Then Exit Sub Workbooks.Open Filename:=myFile Cells.Select Selection.Copy Windows("試作研究費マクロ.xls").Activate Cells.Select ActiveSheet.Paste Range("F11").Select End Sub

  • 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」といった形にしたいのですが、それは可能なのでしょうか。 ご意見宜しくお願いいたします。

  • エクセルマクロで不特定なファイル名を使用するには

    初めて質問します。 不適切があれば申し訳ございません。 教えていただきたいです。 ファイル名が日々変わる場合、以下のマクロを使用した際に ファイル名が変ったとしてもマクロが実行できるようにするにはどうすれば良いでしょうか? ファイル名が変るのが"日別進捗_20140814.xlsx"の日付の所です。 初歩的で誠に申し訳ございません。 教えていただければ幸いです。 ----------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Sheet2").Select Windows("日別進捗_20140814.xlsx").Activate Cells.Select Selection.Copy Windows("Book1.xlsm").Activate Cells.Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Range("A1").Select Sheets("Sheet1").Select Range("D15").Select End Sub

  • エクセルマクロ機能で、常に上書き保存を選択させたい

    いつもお世話になっております。 エクセルマクロ機能を利用し、特定のセル情報を新規bookにコピー貼り付けさせ、名前をつけて保存を実行するよう記録しました。 ここまでは問題ないのですが、毎回同じファイル名で実行するので、そのたびに「上書きしますか?」のメッセージが出て、そこでいったん手動で「はい」を選択しないとならなくなります。 ここで、マクロの記述内に何かを加えて、毎回、「はい」を自動で選択させ、保存までが1回のマクロで実行できるようにできますか? 参考までに↓以下、記述された内容をコピーします。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2007/9/19 ユーザー名 : ' ' Columns("A:U").Select Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1").Select Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:="D:\フォルダ1\ふぉるだ2\ファイル名.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False End Sub

  • ■ エクセルマクロについてです。初級?

    エクセルのマクロでデスクトップにあるエクセルファイルを開くにはどうしたらいいのでしょうか? 現在は、エクセルファイルA.xls B.xlsという2つを開いていて、マクロを実行することができるのですが、これをA.xlsだけ開いている上体で、実行したいのです。 なので、デスクトップに置いてあるB.xlsファイルを開くコマンド?というか、関数が知りたいのですが、どうしたらいいのでしょうか? 現在はこのような感じになっております。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/9/10 ユーザー名 : ' ' ActiveCell.FormulaR1C1 = "12345" Range("G17").Select ActiveCell.FormulaR1C1 = "129876" Range("G18").Select Windows("B.xls").Activate Range("N16").Select ActiveCell.FormulaR1C1 = "8/4/2008" Range("N17").Select ActiveWorkbook.Save Range("O16").Select ActiveWorkbook.Save ActiveWindow.Close End Sub

  • エクセルマクロで上書きして貼り付けの方法は

    エクセルのマクロでコピーして貼り付けする場合、貼り付けするセルに何か入力されているとその次の行に飛んで貼り付けしてしまいます。 何か入力されていても上書きで貼り付けする方法を教えてください。次のマクロを参考にお願いします。 Sub 全体名簿へ2組() ' ' 全体名簿へ2組 Macro ' ' 開始 = Range("r3").Value 終了 = Range("s3").Value Range("B" & 開始 + 1 & ":n" & 終了 + 1).Select Selection.Copy Windows("全体名簿.xlsm").Activate Sheets("★名簿").Select Range("B65536").End(xlUp).Offset(1).Select ActiveSheet.Paste End Sub このActiveSheet.Pasteを変えるとできるのかその方法がわかりません。 また,貼り付けする前に選んだセル以降の行をクリアーにしてから、貼り付けすればできますがその範囲の指定の仕方はどうすればいいのでしょうか。マクロの文も教えていただきたいです。

  • ExcelのVBAです。

    先日お答えいただいたVBAなんですが、 Sub Macro1() Sheets("Sheet1").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet3").Select Range("A1").Select ActiveSheet.Paste Selection.End(xlDown).Select Application.CutCopyMode = False Do Selection.Insert Shift:=xlDown Selection.End(xlUp).Select Loop Until ActiveCell.Address = "$A$1" End Sub というのを使用させて頂いてます。 これを、コピー先のものを上書きせずに、コピーされたものがあれば表示させるといった風に出来ないでしょうか? 例  A    A 1 a 1 2 b → 2あ 3 c 3 右から左に一行間隔で別シートに表示させたいのですが、  A  1 a 2 あ 3 b 4 5 b という結果にしたいのです。 拙い文章で申し訳ないのですが、教えて頂きたいです。

  • Excel VBA if文 マクロ強制終了するには?

    現在 2つのbookがあります。 ・データ data.xls ・集計 total.xls ★条件は以下 ・この2つのbookには同じ名前の 『sheet名・数』が情報保持しています。 ・sheet名は不特定の名前が付けられています。 ★処理したいマクロ内容 ・data.xls …の各sheet と total.xls 各sheet参照させて マッチしたら処理。 マッチしなかったらマクロ強制終了。 Sub match() Dim i As Integer For i = 1 To Worksheets.Count '任意のbookを指定します Windows("data.xls").Activate sheet_copy = ActiveSheet.Name Sheets(sheet_copy).Select '範囲を選択 コピーします Range("C2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy On Error Resume Next '---前後にシートが無い場合のエラーを無視 ActiveSheet.Next.Select '任意のbook と sheet を指定します Windows("total.xls").Activate sheet_paste = ActiveSheet.Name Sheets(sheet_paste).Select Range("D2").Select If sheet_copy = sheet_paste Then ActiveSheet.Paste ActiveSheet.Next.Select Else MsgBox "sheet miss match error!" '★マクロ強制終了 End If Next i End Sub ★部分に何と記述すればよろしいでしょうか? アドバイスお願い致します。

  • エクセルマクロでコピーの質問です。

    エクセルマクロでコピーの質問です。 こんにちわ^^; よくわからないエラーが起こっているため困っています。 1.xlsという別のエクセルを開いて指定のセルをコピーし、貼り付けるということで下記のマクロを作ってみました。 ちなみにマクロを書いたファイルはsum.xlsで、1.xlsのコピーしたいセルには数値のみ入っています(書式は会計)。 Sub before() Workbooks.Open Filename:="c:¥aaa¥1.xls" Range("a1:a5").Copy ActiveWindow.Close Range("a1").PasteSpecial End Sub しかし、このマクロをThisWorkbookに貼り付けると文字列として保存されてしまいます。 そこで最後の行を Range("a1").PasteSpecial Paste:=xlValues にするとエラー400が出ます。 一応、sheet1(sheet1)に貼り付けて実行してみたところ、コピー自体ができませんでした。 まだ余りエクセルマクロを理解していないため、なぜなのかが良くわからないのでアドバイスをお願いいたします。 ちなみに使っているのはoffice2003のエクセルです。