• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessでExcelのSheet間のコピーをしたい)

AccessでExcelのSheet間のコピーをしたい

このQ&Aのポイント
  • Accessのデータを読み込み、エクセルの元帳からレイアウトをコピーし、新しいExcelのSheetにデータを書き込みたいのですが、うまく動作しません。
  • エクセルのSheet間でデータをコピーする方法について、Accessを使用しています。しかし、実行すると2つのExcelブックが生成され、データとレイアウトがうまく一つにまとまりません。
  • ExcelのSheet間でデータを正しくコピーする方法を知りたいです。Accessを使用してデータを読み込み、エクセルの元帳からレイアウトをコピーし、新しいExcelのSheetにデータを書き込もうとしていますが、うまく動作しません。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

> なぜかBOOK2が勝手に開き Workbooks.Add の他に、xlSheetOrig.Copy しているからと思いますよ。 シート(オブジェクト)をコピーしていますので、その時点でBook2が出来てしまいます。 ですから、前に xlSheetNew.Paste は、いらない と書いた訳です。 Workbooks.Add を生かして使うなら xlSheetOrig.Cells.Copy xlSheetNew.Paste となれば、いいと思います。 要するに、元帳.xlsのシート1をコピーしたものにシート名を付け、 2つのセルにデータを書き込んでセーブするということですよね。 そうであれば、Add か xlSheetOrig.Copy のどちらかを使うことになるでしょう。

GA1
質問者

お礼

xlSheetOrig.Cells.Copy で望んでいたように動きました。 どうもありがとうございます。 COPYでは単にメモリに取込まれるのみでPASTEする必要があると思っていたのですが違うのですね。 オブジェクトのコピーに関して勉強します。 2個の ’も不要でした。 今後もよろしくお願いします。

その他の回答 (2)

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.2

>エクセルの元帳からレイアウトをコピー 元帳そのものを使われたら如何ですか? 元帳から新しいbookへコピーし、 そのブックを名前を付けて 保存する方法をとられているのでしたら、 元帳へデータをアクセスから直接書き込み、 エクセルシートは そのまま SaveAs で保存すれば良いと思います。 元帳は元のまま 何にも変わりません。

GA1
質問者

補足

どうもありがとうございます。 最初、元帳にそのまま書き込んでいたのですがデータの種類が変われば別のシートを追加し、再度元帳のレイアウトをコピーしたいと考えています。 strMODEL の7桁が異なれば新規BOOK strMODELの9桁が異なれば新規SHEET です。 欲張りすぎですかね?

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

> レイアウトとデータが一つになりません。 この意味が分からず、どうなればいいのか分かりません。 もし、BOOK1には、SHEET名およびA5とC4に値を書き込み、 BOOK2には元帳.xlsのWorksheets(1)をコピーということでいいのであれば、 xlSheetNew.Paste を削除すれば、それでいいと思います。 あと、 xlSheetNew.SaveAs "C:\'" & Left$(strMODL, 7) & "'.xls" の2つの ' は、要らないのではないかと・・・ 外していたら、ごめんなさい。

GA1
質問者

補足

新規BOOK1を開き、そこのSheet1に元帳のレイアウトをコピーし、そのSheet1にAccessのデータを取込みたいと思っているのですが、なぜかBOOK2が勝手に開き、レイアウトのコピーはBOOK2のSheet1に、データはBOOK1のSheet1に書き込まれます。 BOOK名、Sheet名を指定する必要があるのですかね?

関連するQ&A

専門家に質問してみよう