Excel VBA質問箱 IV

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

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


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

【7389】新しいExcelへシートのコピー Rosy 03/9/3(水) 23:53 質問
【7391】Re:新しいExcelへシートのコピー ichinose 03/9/4(木) 7:43 回答

【7389】新しいExcelへシートのコピー
質問  Rosy  - 03/9/3(水) 23:53 -

引用なし
パスワード
   新しいブックへシートのコピーを
するために、VBAで次のように書きました。

Worksheets("Sheet1").Copy

そうすると、確かに新しいブックにコピーされるのですが、
同じExcelウィンドウの中にできてしまいます。

新しい、Excelウィンドウを作成させて、その中にシート
をコピーしたいのですが、そのような方法をご存知でしたら
御指南ください。

【7391】Re:新しいExcelへシートのコピー
回答  ichinose  - 03/9/4(木) 7:43 -

引用なし
パスワード
   ▼Rosy さん:
おはようございます。

>Worksheets("Sheet1").Copy
>
>そうすると、確かに新しいブックにコピーされるのですが、
>同じExcelウィンドウの中にできてしまいます。
>
>新しい、Excelウィンドウを作成させて、その中にシート
>をコピーしたいのですが、そのような方法をご存知でしたら
>御指南ください。
思いついたのは、

>Worksheets("Sheet1").Copy
でコピーされた新しいブックを一旦保存して
新たに起動されたExcelから読み込む方法

対象シートの全セルコピーを行い、
新たに起動されたExcelの新規ブックに貼り付ける方法
ですが。
'================================================================
Sub main()
'一旦保存して新たに読み込む
  Dim excel_obj As Excel.Application
  Set excel_obj = CreateObject("excel.application")
  With excel_obj
    .Visible = True
    Worksheets(1).Copy
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\book1.xls"
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    .Workbooks.Open ThisWorkbook.Path & "\book1.xls"
    End With
  Set excel_obj = Nothing
End Sub
'================================================================
Sub main2()
  Dim excel_obj As Excel.Application
  Dim bk_obj As Workbook
  Set excel_obj = CreateObject("excel.application")
  With excel_obj
    .Visible = True
    ActiveWorkbook.Worksheets(1).Cells.Copy
    Set bk_obj = .Workbooks.Add
    bk_obj.ActiveSheet.Cells(1, 1).Activate
    bk_obj.ActiveSheet.Paste
    End With
  Application.CutCopyMode = False
  Set excel_obj = Nothing
  Set bk_obj = Nothing
End Sub

どちらも一長一短ありますが・・・。

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