Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8385 / 13644 ツリー ←次へ | 前へ→

【33590】Excelシートのコピー 鐘本政和 06/1/16(月) 13:23 質問[未読]
【33592】Re:Excelシートのコピー inoue 06/1/16(月) 13:37 発言[未読]
【33594】Re:Excelシートのコピー 鐘本政和 06/1/16(月) 14:30 お礼[未読]
【33596】Re:Excelシートのコピー inoue 06/1/16(月) 14:43 発言[未読]
【33606】Re:Excelシートのコピー 鐘本政和 06/1/16(月) 16:08 お礼[未読]

【33590】Excelシートのコピー
質問  鐘本政和 E-MAIL  - 06/1/16(月) 13:23 -

引用なし
パスワード
   VB(Visual Basic.NET)でEcelシートのデータを処理するソフトを作成しています。
元のデータを残しておきコピーしたデータで処理するため、下記のようにSheet1からSheet2へコピーさせようとしたところ、Sheet1とsheet2の間にSheet1(2)という新しいシートが作られ、そこにコピーされてしまいました。
Sheet1からSheet2へ直接コピーするにはどう変更すればよいでしょうか?
ご教示ください。
    xlApp = CreateObject("Excel.Application")
    xlBook = xlApp.Workbooks.Open("C:\VB.NET\TEST1.xls")
    xlApp.Application.Visible = True   'Excel を表示する。
    xlApp.Parent.Windows(1).Visible = True
    xlSheet = xlBook.Worksheets("Sheet1")
    xlSheet2 = xlBook.Worksheets("Sheet2")
    xlSheet.Copy(xlSheet2)         'シート1から2へのコピー

【33592】Re:Excelシートのコピー
発言  inoue E-MAILWEB  - 06/1/16(月) 13:37 -

引用なし
パスワード
   > xlSheet.Copy(xlSheet2)  'シート1から2へのコピー
と記述する場合、
シートタブを右クリックして「移動またはコピー」を行なう動作です。

> Sheet1からSheet2へ直接コピーするにはどう変更すればよいでしょうか?
既存シートにコピーする場合の動作(操作)を考えて下さい。
この場合は、シート上の全セル(又は使用範囲)をコピーして、
Sheet2に貼り付ける操作になりませんか?

この操作をマクロに記録すれば参考コードが得られます。

【33594】Re:Excelシートのコピー
お礼  鐘本政和 E-MAIL  - 06/1/16(月) 14:30 -

引用なし
パスワード
   ▼inoue さん:
>> xlSheet.Copy(xlSheet2)  'シート1から2へのコピー
>と記述する場合、
>シートタブを右クリックして「移動またはコピー」を行なう動作です。
>
>> Sheet1からSheet2へ直接コピーするにはどう変更すればよいでしょうか?
>既存シートにコピーする場合の動作(操作)を考えて下さい。
>この場合は、シート上の全セル(又は使用範囲)をコピーして、
>Sheet2に貼り付ける操作になりませんか?
>
>この操作をマクロに記録すれば参考コードが得られます。

メールありがとうございます。
全セル範囲をコピーするとしてもセル範囲の指定が必要ということでしょうか。
もう一度トライしてみます。
アドバイスありがとうございました。

【33596】Re:Excelシートのコピー
発言  inoue E-MAILWEB  - 06/1/16(月) 14:43 -

引用なし
パスワード
   >全セル範囲をコピーするとしてもセル範囲の指定が必要ということでしょうか。
全セルなら、コピー先はA1セル起点で貼り付ければ良いと思います。

【33606】Re:Excelシートのコピー
お礼  鐘本政和 E-MAIL  - 06/1/16(月) 16:08 -

引用なし
パスワード
   ▼inoue さん:
>>全セル範囲をコピーするとしてもセル範囲の指定が必要ということでしょうか。
>全セルなら、コピー先はA1セル起点で貼り付ければ良いと思います。

色々、カットアンドトライの末、下記のようにするとうまくいきました。
ただ5行目を3行目と同じように xlSheet2.Cells.Select()
とするとエラーになった理由がまだ分かりませんが。。

    xlSheet = xlBook.Worksheets("Sheet1")
    xlSheet2 = xlBook.Worksheets("Sheet2")
    xlSheet.Cells.Select()
    xlApp.Selection.Copy()
    xlSheet2.Select()
    xlApp.ActiveSheet.Paste()

8385 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free