- 締切済み
エクセル 特定のシートを異なるブックの指定したシートにコピーするマクロ
エクセルの"貼り付け先.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
- hyunndai
- お礼率0% (0/5)
- オフィス系ソフト
- 回答数5
- ありがとう数1
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- onlyrom
- ベストアンサー率59% (228/384)
NO4、onlyromです。 >Workbooks("貼り付け元.xls").Worksheets("Sheet1").Cells.Copy_ が黄色くマーキングされています Cells.Copy_ この最後の _ の前にスペースが必要です。 _ の意味がお分かりではないようですね? _ は、1行のステートメントの途中から改行するためのものです。 シート名.Cells.Copy スペース1個 _ シート名.Range ("A1") お試しください。
- onlyrom
- ベストアンサー率59% (228/384)
貼り付け先.xls だけではなく、 貼り付け元.xls も開いた状態でないとエラーになります。 要するに両方とも開いた状態でないと Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ").Range ("A1:IV65536") コードの間違いは別にして、このようなCopyはできないということです。 全セルコピーなら、 Range("A1").Copyではなくて、Cells.Copyです。 そして貼り付け先には、Range("A1")を使います Sub Test() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Cells.Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ").Range ("A1") End Sub 両方開いた状態で上記を実行してみてください。 それから開いてないブックを使いたいときは、 WorkBooks.Open "開きたいブック.xls" としてコードで開いてから処理します。
- fish-rd
- ベストアンサー率0% (0/0)
#2の補足を拝見したのですが、 やりたいことって、 貼り付け元のシートのデータを 貼り付け元とは異なるBOOKで シートを指定して貼り付けるということですよね? だとするとセル番号指定するコードは ("A1")のところは("A1:IV65536")となって↓のようになるのでは? Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1:IV65536").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ").Range ("A1:IV65536") End Sub
補足
仰るとうりです。 何度もすみません。 ただ、このコードでも同じ結果なのです。
- imogasi
- ベストアンサー率27% (4737/17068)
#1でご指摘の問題と 下記では Copy_のCopyのあとのアンダースコア?を訂正してます。 ここはおかしいのでは。 同一ブック内の別シートに変えてのテストですが Sub test01() Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("A1:IV65536") End Sub を実行すると、実行はうまくいきました。 Sheet1のA1にAAと入れて実行すると、Sheet2の全セルの値ががAAになりましたが、そういうので内容は良いのかな。 そんなことすることはまず無いように思うが。」
補足
早速のアドバイスありがとうございます。 >Sheet1のA1にAAと入れて実行すると、Sheet2の全セルの値ががAAになりましたが やりたいことは上記のようなことを同一ではなく異なるブックにコピーしたいのです。 また、Copy_のCopyのあとのアンダースコアはいらないのでしょうか? アンダースコアをはずして異なるブックへのコピーを実行してみましたが、結果は同じでした。 なにぶんにもVBA初心者なもので下記のサイトの http://www.geocities.jp/happy_ngi/YNxv209.html 1)すべてコピー、切り取りするの項目の Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() を参考にしたのですが、なにかご指摘がございましたら よろしくお願いいたします。
- fish-rd
- ベストアンサー率0% (0/0)
マクロ文 Worksheets("集計元データ.xls")の部分は Worksheets("集計元データ")では?
補足
早速のご指摘ありがとうございます。 そのとうりです。すみませんでした。 Sub クリップボードを経由せずにコピー貼り付けする_異なるブック() Workbooks("貼り付け元.xls").Worksheets("Sheet1").Range("A1").Copy_ Workbooks("貼り付け先.xls").Worksheets("集計元データ").Range ("A1:IV65536") End Sub
関連するQ&A
- 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 ここでブックがない場合、そのブックを飛ばしてあるブックだけコピーしたい場合は、どうしたらいいでしょうか。いろいろやってみましたが、コピーできませんでした。 教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルのシートのコピーについて
シートのコピーを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
- ベストアンサー
- Visual Basic
- Excelマクロ(VBA)のブックとシートのコピーについて
初めまして、宜しければVBAのブックやシートのコピー(操作)についてご教授お願いいたします。 Windows XP x64 OFFICE2003 を使用しております。 D:\Book1.elxのsheet1のシートをD:\test\Book2.elxのsheet1のシートに コピーする方法が恥ずかしながら理解できておりません。 以下が行いたい事です。 Sub ボタン1_Click() 'text1ブックを開く 'Workbooks.Open "D:\micro\test1.xls" 'ブック間のシートをコピー Workbooks("test2.xls").Worksheets("シート2").Copy _ After:=Workbooks("test1.xls").Worksheets("Sheet2") End Sub VBのファイル操作とは違い、どのように行えば良いのか検索しても同じような部分サンプルのようなものしか無く、理解できておりません。 参考でも結構ですのでご教授いただけませんでしょうか? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- シートを別のブックに複数自動コピー
初質問です。よろしくお願いします。 マクロを使って、あるブックのシート(20から50枚程度)を、別の貼り付け先のブックに自動的にコピーしようとすると、10回をすぎたあたり(必ずしも一定せず)で 「実行時エラー'1004': WorksheetクラスのCopyメソッドが失敗しました。」 というエラーと共にマクロが止まり、デバッグしようとすると 「ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート")」 のところで止まっています。 マクロの記述内容は以下の通りです。 Sheets("貼り付け元シート").Activate ActiveSheet.Copy After:=Workbooks("貼り付け先ブック.xls").Sheets("○○シート") Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Windows("貼り付け元ブック.xls").Activate ・・・以下貼り付け元シートを変えつつ複数回繰り返し これができる様になれば非常にラクになるので、ぜひご教授願います。
- ベストアンサー
- オフィス系ソフト
- ExcelVBA ブック全データを別ブックにコピー
お世話になります。 自分のPC環境のC:\test\配下にある"練習.xls"というブックがります。 ボタンが押された時にこのブックの全データをデスクトップにある"集計.xls"のA1から張り付けたいのです。 あるサイトで下記のようなロジックが公開されていましたので、ファイル名を変えて実行しましたが 下記★箇所で"インデックスが有効範囲にありません"とエラーが出てしまいます。 どなたか改善方法をご教授いただけませんでしょうか? よろしくお願い致します。 環境 windows XPSP3 Excel2003 Sub ボタン1_Click() Dim a As Variant Dim b As Variant Workbooks.Open Filename:="C:\test\練習.xls" ★Set a = Workbooks("\C:\test\練習.xls").Worksheets("sheet1").UsedRange Set b = Workbooks("集計.xls").Worksheets("sheet1").Range("A1") a.Copy (b) Set a = Nothing Set b = Nothing End Sub
- ベストアンサー
- その他MS Office製品
- Excel VBA 指定シートの取込
こんにちは。 ExcelのVBAを使用して、異なるBookのシートを取込みたいのですが、 シートが無かった場合の処理方法がわかりません。 現在のコードは下記の様になっております。 With Workbooks.Open"BOOK1.xls" .Worksheets("Sh1").Cells.Copy ThisWorkbook.Sheets("Sheet1").Range("A1") .Worksheets("Sh2").Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") .Worksheets("Sh3").Cells.Copy ThisWorkbook.Sheets("Sheet3").Range("A1") .Close End With Book1に指定したシートが無い場合、何もしないようにしたいのですが、 どの様に書き換えれば宜しいでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 異なるワークシートに値を貼り付けるマクロ
数式の入ったワークシートから値のみをコピー&ペーストしたいのですが、うまくいきません。 どこにxlPasteValuesを入れたらいいのでしょうか?よろしくお願いします。 Sub copypaste() Dim bk As Workbook Set bk = Workbooks("‘貼り付け先.xlsm") Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("B2:F6").Copy bk.Worksheets("Sheet1").Range("B2:F6")
- 締切済み
- Excel(エクセル)
- Excelマクロについて(セルのコピー)
今、マクロで自動的にセルのデータを別シートに貼り付けるというものを作っています。 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub これで、sheet1のA2からsheet2のA1にコピーできるのですが、 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 コピー元セル = "B" & コピー元行 コピー先セル = "B" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub とすると、B2の項目しかコピーされません。複数のセルを一度にコピーするマクロの作り方をご存じの方、ご伝授下さい。
- ベストアンサー
- オフィス系ソフト
- エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ
単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル) A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル) ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル) ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)
- ベストアンサー
- オフィス系ソフト
- VBA初心者です。値を貼り付け について質問です。
VBA初心者です。 値を貼り付け について教えてください。 Sub test() With Workbooks("A.xls").Worksheets("sheet1") .Range("A1").Copy Workbooks("Bxls").Worksheets("sheet1").Range("B2") .Range("A2").Copy Workbooks("B.xls").Worksheets("sheet1").Range("B4") End With End Sub コピーする方に計算式が入っているので 値を貼り付け したいのですが、どうすればいいのでしょうか? PasteSpecial Paste:=xlPasteValues を使ったらよいというところまではわかったのですが・・・。 教えてください!よろしくお願いします!
- 締切済み
- Visual Basic
補足
早速のご回答ありがとうございます。 今、2つのブックを開いた状態でためしたのですが、 実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 と出て、デバッグをクリックすると Workbooks("貼り付け元.xls").Worksheets("Sheet1").Cells.Copy_ が黄色くマーキングされています。 また、上記の作業とは別に WorkBooks.Open "貼り付け元.xls"を行うとファイルはきちんと開きましたので”貼り付け元.xls”のファイルがおかしいわけではないと思います。