• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロでシートのコピー)

エクセルマクロでシートのコピーする方法とは?

このQ&Aのポイント
  • エクセル2000でマクロを使用して、異なるブック間でシートのコピーを行いたい場合、ブック名が都度変わるため困っているとのことです。
  • 具体的には、Workbook A に a、b、c の3つのシートがあり、Workbook B に f、g、h の3つのシートがあります。Workbook A の Sheet a を Workbook B の Sheet h の前にコピーしたいという要件です。
  • ブック間の移動は ActiveWindow.ActivateNext などで行っていますが、シートのコピーの方法が分からないのでアドバイスをお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。補足していただいた2つの条件 >コピー元・コピー先の2つのWorkbookが開いていて >一方のWorkbookの1番目のシートをもう一方のWorkbookの3番目のシートの前にコピー でマクロを書いてみました。マクロ実行時点でactiveなブックをコピー元としています。期待するものとは違うかもしれませんが、参考程度にはなると思います。 Sub Macro1() Dim wb, myBk As Workbook Dim cnt As Integer For Each wb In Workbooks   If wb.Name <> "PERSONAL.XLS" Then     cnt = cnt + 1   End If Next wb If cnt = 2 Then   Set myBk = ActiveWorkbook   For Each wb In Workbooks     If wb.Name <> "PERSONAL.XLS" And wb.Name <> myBk.Name Then       myBk.Sheets(1).Copy Before:=Wb.Sheets(3)     End If   Next wb Else   MsgBox "ブックが3つ以上開いているのでコピー先ブックを" & Chr(10) & _       "特定できません。処理を終わります" End If End Sub

char0078
質問者

お礼

おー、出来ました。ありがとうございます。 変数の設定とか分からない行がいくつかあるので また勉強していきます。 分からないままに質問したらダメだってこともよく分かりました。 いつもありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>いくつかWorkbookが開いている状態で、シートのコピーを行うのですが これはどう回答すればよいのでしょう。何がその都度変更されるか明示されていないので、回答するにも悩んでしまいます >Workbook"A" の Sheet("a") を Workbook"B" の Sheet("h") の前にコピー もしコピー元のシートが「Workbook"A" の Sheet("a")」と決まっており、コピー先のブックである「Workbook"B"」が変わる可能性があるなら、コピー先のシートを手操作で選択してから  Workbook("A.xls").Sheets("A").Copy before:=Activesheet でもよいと思います でも「コピー元のシート」が特定できない場合(Workbook"C"になったり、シートがWorksheets("b")になったりする場合)は上記のようなマクロでは実現できません もう少し「何が変わって何は変わらない」と「どうやって変わるターゲット(ブック、シート)を取得すればよいか」を説明していただかないと、期待する回答は得られないと思いますよ

char0078
質問者

補足

言われるとおり、自分もちょっと混乱しています。 >でも「コピー元のシート」が特定できない場合(Workbook"C"になったり、シートがWorksheets("b")になったりする場合)は >上記のようなマクロでは実現できません まさにその状況です。コピー元・コピー先の2つのWorkbookが開いていて、共にWorkbook名が特定できない状態です(変化します)。 この状態で一方のWorkbookの1番目のシートをもう一方のWorkbookの3番目のシートの前にコピーしたいのです。 分かりづらくて申し訳ないのですが、お願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル ブック間コピー マクロ

    ブックA(ブック名は固定)のシートA(シート名は毎回違います)を ブックB(ブック名は固定)の一番左へコピーしたいのですがうまくいきません。 動作 :シートAでマクロを実行しブックBへシートのコピー(挿入)します。 まず第一段階のブックAのシートAをブックBへのコピーがうまくいきません。 シートAが固定シート名ならコードは Sheets("A").Select Sheets("A").Copy Before:=Workbooks("B.xls").Sheets(1) ですが・・・・ Sheets("A").SelectをWith ActiveSheet.Selectにすれば良いのですか? 申し訳ないのですが、後教授お願いします。

  • エクセルのシートのコピーについて

    シートのコピーをVBAで行いたいのですが、エラーになってしまいます。 間違っている箇所が分からないのでご教授お願いします。 貼り付けというブックにマクロが組まれています。 ”データ”のブックにあるシート名が”貼り付けのブックのリスト”のシートに記載されています。 リストのシートに記載されているシートを貼り付けのブックにコピーしたいです。 よろしくお願いします。 Sub シートコピー() 行数 = 2 Do Until IsEmpty(Cells(行数, 3).Value) コピー元 = Workbooks("貼り付け.xls").Worksheet("リスト").Cells(行数, 3) Workbooks("データ.xls").Worksheet(コピー元).Copy After:=Workbooks("貼り付け.xls").Sheets(Workbooks("貼り付け.xls").Sheets.Count) 行数 = 行数 + 1 Loop End Sub

  • ブックの保護(シート構成) でシートのコピー

    エクセルで外部データを参照させるために, 別のブックを開きシートをコピーし元のブックに貼り付け別のブックは閉じるというマクロを作成しました。 Workbooks.Open Filename:=a Sheets("データ").Select Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー") Workbooks(a).Close SaveChanges:=False a(変数)というファイルを開く シートのデータを選択 データをコピーし ファイル.xls のメニューシートの後に貼り付け a(変数)のエクセルファイルを保存せずに閉じる 動作としては正常に動きました。 しかし、この ファイル.xls には ID とパスワードで管理しています。 その管理したシートがあるんですが、それを表示させないために シートを非表示→ブックの保護→シート構成 を行いました。 マクロを動かすと、シート構成をしているので Sheets("データ").Copy After:=Workbooks("ファイル.xls").Sheets("メニュー")  が動かないことに気が付きました。 何かいい方法があればご教授お願いします。

  • エクセルマクロ ファイル名を変更したとき

    マクロ初心者です。 データファイルからシートを複写挿入するマクロです。 コピー先ファイル名を都度変更したいのですが、その場合マクロにコピー先ファイル名が入っているのでエラーになります。名前が変わっても実行できるようにするにはどうしたらよいのでしょう? なお、複写元のデータファイルは複写後に閉じます。 Workbooks.Open Filename:="データファイル.xls" Sheets("Sheet1").Copy Before:=Workbooks("コピー先ファイル名.xls").Sheets(1)

  • excelシートから別のexcelシートへのコピー

    動作環境は、OS:XP、VB6+SP6です。 シート名がわかっている場合ですと Sheets(Array("sheet1", "sheet2")).Copy Before:=Workbooks("コピー先.xls").Sheets(1) のようにできるのですが、不明な場合はどうしたらよいのでしょうか? コピー元ワークブックのシート数とシート名が不明なので、まずコピー元のシート名を取得しました。 しかし文字列だと、上記Arrayの中に埋め込むことができません。 どなたかご存知でしたら教えてください。

  • エクセル2000のマクロについて再び

    新しいブックを作りさらに他のブックで作成されているシートをコピーして移動するというマクロを作ります。この時、新しく作ったブックの名前がBook1にならないとその時点でマクロのエラーになりなってしまいますが、たまにBook2になってしまうときがあります。必ずBook1になると指定することはできないのでしょうか。 Sheets(Array("sheet1", "sheet2", "sheet3")).Select Sheets(Array("sheet1", "sheet2", "sheet3")).Copy →新しいシートを作成 Workbooks.Open Filename:="C:xxx\○○\△△.xls" Sheets.Copy after:=Workbooks("book1").Sheets(2) →ここで、Book1が存在しないとエラーになってしまう。 お願いします。

  • EXCEL 別シートのコピー(3)

    こんにちは。 こちらで以前こちらで質問をさせていただき、EXCELの別ブックのシートからコピーをしています。 元のブックのコピーを作り、そこに入力してもらい、元のブックにコピーをしています。(同じフォルダに入れて) Private Sub CommandButton1_Click() Dim myBook As Workbook Set myBook = Workbooks.Open(ThisWorkbook.Path & "\コピー元ブック.xls")  with workbooks("コピー元ブック.xls").worksheets("シート名").usedrange workbooks("貼り付け先ブック.xls").worksheets("シート名").range(.address).value = .value end with end sub ここでブックがない場合、そのブックを飛ばしてあるブックだけコピーしたい場合は、どうしたらいいでしょうか。いろいろやってみましたが、コピーできませんでした。 教えてください。

  • エクセル 特定のシートを異なるブックの指定したシートにコピーするマクロ

    エクセルの"貼り付け先.xls"の(シート名="集計")を開いている状態で、 別の異なるブックの"貼り付け元.xls"の(シート名="sheet1")の内容を全部コピーして "貼り付け先.xls"の(シート名="集計元データ")へ貼り付けるマクロは どのようになりますでしょうか? いろいろ調べて下記のように書きましたが、 インデックスが有効範囲にありませんというメッセージが出て、 デバッグを確認すると Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_の部分が黄色く表示されてきます。 (1) "貼り付け先.xls"と"貼り付け元.xls"は同じパソコンのマイドキュメントに保存されています。 (2)"貼り付け元.xls"の"Sheet1"はセルA1から入力されていて、 内容は毎日変わります。 (3)Range("A1")や("A1:IV65536")のセル番地をいろいろ変えたりしても同じでした。 Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ.xls").Range ("A1:IV65536") End Sub

  • ExcelVBAでBook間のシートコピーについて

    以前、Excel2003を使用しているときに作成したファイルで、2003の時には特に問題なく動いたのですが、Excel2010に入れ替えてからうまくいきません。 コードは以下のようなもので、コピーするシートには埋め込みグラフ(ソースは同一シート)があります。 Dim Book_A As Workbook Dim Book_B As Workbook Set Book_A = ThisWorkbook Set Book_B = Workbooks.Open("D:\Book_B.xls") For i = 1 To 3 Book_A.Sheets(i).Copy Before:=Book_B.Sheets(i)   '※ Next i 上記※印の部分で下記のエラーが発生します。 実行時エラー '-2147417848(80010108)': オートメーションエラーです。 起動されたオブジェクトはクライアントから切断されました。 となり、止まってしまいます。 また、同じファイルを2003の入った端末から実行するとエラーは発生しません。 また、2010の入った端末で試しにシート見出しを右クリックして別のBookにコピーをしたところ、グラフやテキストボックスが抜け落ちたものがコピーされます。 2010では方法が違うのでしょうか?

  • マクロを教えてください

    同じフォルダ内にあるXlsブックのあるSheetのデータを他のBookにコピーして貼り付けて貼り付けた側のBookで加工したいのですがうまくマクロが組めません。 Bookを共有で使っているので困っています。 Sub ワードアート1_Click ' ActiveWindow.ScrollWorkbookTabs sition:=xlLast Workbooks.Open ("販売管理表み.xls") Sheets("在庫一覧").Select Cells.Select Range("A1").Activate Selection.Copy Windows("完成在庫.xls").Activate Sheets("完成在庫一覧").Select Range("A1").Select ActiveSheet.Paste End Sub って書いてみましたが、Workbooks…のところでエラーになってしまいました。(TOT)初心者ですみません。教えてください。

このQ&Aのポイント
  • HL-L3230CDWのトナー交換後、フタが閉まらなくなりました。フタが閉まらない問題について、解決方法や同じ経験をした方のアドバイスをお聞きしたいです。
  • 質問者はHL-L3230CDWのトナーを交換した後、フタが閉まらなくなりました。フタを閉めるための支えを触ってみたが、全く閉まらない状態です。同じような経験をした方がいれば、どのように解決したのか教えていただきたいです。
  • HL-L3230CDWのトナーを交換した後、フタが閉まらなくなりました。フタを閉めるための支えを少し触ったり、上に上げてみたりしましたが、効果がありませんでした。同じ問題に遭遇した方の解決策やアドバイスをお願いします。
回答を見る

専門家に質問してみよう