VBAでシートのコピー

このQ&Aのポイント
  • VBAを使ってシートをコピーする方法について教えてください。
  • 現在、VBAを使用してシートをコピーする作業を行っていますが、コマンドボタンでの操作に変更しようとしています。しかし、エラーが発生してしまいうまくいきません。具体的な手順や設定について教えていただけますか?
  • VBAを使ってファイルA内の特定のシートを「請求書」ファイルの「Sheet2」にコピーしたいのですが、エラーが出てしまいます。マクロのコピー部分で問題が発生しているのか、コマンドボタンの設定に問題があるのか教えてください。
回答を見る
  • ベストアンサー

VBAでシートのコピー

お世話になっております。 VBAの未熟者ですが、個人の資料作成のためのシステムをコツコツと作っております。 今までマクロでシートのコピーをやっていたのですが、コマンドボタンでできるように変更しようとしてうまくいきません。 ファイルAの中にある幾つかのシートの内、シート「個人事業」を「請求書」ファイルの「Sheet2」にコピーしたいのです。その後名前を変更しています。 マクロのプログラムをそのままコピーしてみたのですが、[sheets("個人事業").paste]のところでエラーが出ます。 マクロとコマンドボタンではやはり設定を変更しないといけないのでしょうか?ご教授お願いします。 Private Sub CommandButton1_Click() Sheets("Sheet2").Select Windows("未請求リスト.XLS").Activate Sheets("個人事業").Select Selection.Copy Windows("請求書.xls").Activate Sheets("Sheet2").Select Sheets("個人事業").Paste Sheets("Sheet2").Name = "個人事業請求一覧" Sheets("請求書").Select End Sub 宜しくお願いします。

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

  • ベストアンサー
  • WDY
  • ベストアンサー率27% (121/436)
回答No.1

シートのコピー貼付けの方法を Sheets("個人事業").Copy Before:=Workbooks("請求書.xls").Sheets(1) なら Sheets("個人事業").Paste の所でエラーにならないかな?

参考URL:
http://www.happy2-island.com/excelsmile/smile03/capter00404.shtml
kenchiki
質問者

お礼

早速ありがとうございます。 うまく行きました。 本当にありがとうございました。 助かりました。

関連するQ&A

  • VBA 隣のシートへ、コピーペーストするマクロ

    質問があります ボタンにマクロを登録して、押下するとシート3から特定の列4行のみ全てコピーして(100~500件で変動)、シート1の固定された開始地点からペーストするマクロです 以下のソースは文章で表現した通りのものとなっていますでしょうか? ------------------------------------------------------------------------------------ Sub ボタン登録コピーペースト () MsgBox "マクロを実行しました" Sheets(3).Select‘コピー元データ(シート3) Range("C:C,M:M,AE:AE,AF:AF").Select ‘4列の変動するデータすべて100~500件 ‘選択します Selection.Copy Sheets(1).Select‘コピー先データ Range("C70").Activate‘まず固定開始位置C70を選択する Selection.PasteSpecial Paste:=xlPasteValuesApplication.CutCopyMode = False ‘4列のデータ数百件すべてコピーする End Sub ------------------------------------------------------------------------------------

  • エクセル2007マクロ シート間のセルコピー

    [Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • エクセル2007VBAで新規ファイルを作る場合

    現在A社というファイルのsheet1に電気代と名前を付けたデータ、sheet2に ガス代という名前を付けたデータがあり電気代のブックからコピーして新規ファイルに貼り付けをしたいと思い下記のとおりマクロがありますが、新規ブックを開いた時常に1ではなく他に新規ブックを開いていたら2とか3になってしまいます。すると再度新規ブックに戻ってガス代を貼り付ける時2とか3tpか4とかでしたらエラーになってしまいます。 こういう場合どのように書いたら良いのでしょうか? それから最後に新規ファイルで名前を付けて保存のところまでダイアログ出すところまで 教えていただきたいのですが。 マクロ勉強始めたばかりでよろしくお願います。 Sub DGCopy() Cells.Select Selection.Copy Workbooks.Add Cells.Select ActiveSheet.Paste Sheets("Sheet1").Select Sheets("Sheet1").Name = "電気代" Windows("A社.xls").Activate Sheets("電気代").Select Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Book1").Activate Sheets("Sheet2").Select Cells.Select ActiveSheet.Paste Sheets("Sheet2").Select Sheets("Sheet2").Name = "ガス代" Application.CutCopyMode = False End Sub

  • EXCEL VBA マクロでユーザーフォームをコピーする方法

    元のユーザーフォームが含まれたブックがありそれを、コピーし個人用に名前を入れそれに記入させようとしています しかし作ったマクロでは標準モジュールはコピーされユーザーフォームはコピーされません ユーザーフォームをコピーして標準モジュールはコピーしたくないのです 繰り返し処理をする良い方法もお願いします Windows("元.xls").Activate Sheets("報告書").Copy Windows("元.xls").Activate Sheets("名前").Range("C1:D1").Copy Windows("Book1").Activate Range("Q2:R2").Select’名前シートから個人名を入力 ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:="C:\Users\~~~~\" & "○○" & ".xls", ’個人名に変更 FileFormat _ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False Workbooks("○○.xls").Close SaveChanges:=False

  • シートをコピーする際のVBAコードについて

    お世話になります。 sample.xls というファイルがあります。 このファイルの中にVBA処理にて、現在のシートをコピーする処理を行います。 Windows("sample.xls").Activate Sheets("sheet1").Select Sheets("sheet1").Copy after:=Sheets(Sheets.Count) sample.xlsは原本ファイルとなり、実際の運用時は拡張子の前に年月を表示する 形で保存されます。 (sample201106.xls、sample201109.xlsなど) こうなってしまうと、VBAで定義した Windows("sample.xls").Activate ファイル名が変わることで、この部分にエラーが生じます。 ファイル名が変更されても、上記コードがうまく機能するようにする方法はありますでしょうか? アドバイスいただけたらと思います。 よろしくお願いします。

  • Excel 2007 マクロ 別ブックのシートをコピーする方法

    Excel 2007 マクロ 別ブックのシートをコピーする方法 別ブックのシートをコピーして アクティブなブックのシートにコピーしたいと思います。 下記マクロを作成しました。 貼り付ける際に、クリップボードに保存するかどうか 聞かれるメッセージが表示されてうまくいきません。 またもっとシンプルな書き方があればアドバイスお願いします。 Sub 取り込み() Dim wb As Workbook Set wb = Workbooks.Open("\") Sheets("Sheet1").Select Cells.Select Selection.Copy ThisWorkbook.Activate ThisWorkbook.Sheets("特定").Select ActiveSheet.Cells(1, 1).Select ActiveSheet.Paste wb.Close End Sub

  • 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

  • VBAでコマンドボタン操作で他のシートにコピーする方法を教えてください。

    エクセルのVBAでコマンドボタン操作でセルの値を他のシートのセルへコピーしたいのですが、やり方がわかりません。 自分なりに作ってみたのですが何が悪いのか教えてください。 Private Sub CommandButton1_Click() ' Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub Private Sub が怪しいのですが対処もわかりません。 ちなみにsheets2のA1には値がはいっています。 よろしくおねがいします。

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

専門家に質問してみよう