EXCEL VBAで、新たにブックを生成して既存ブックのあるシートを
新規ブックにコピーするというコードを書いてみたのですが、
以下のようなエラーが発生しました。
移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、
シートを移動先またはコピー先のブックに挿入できません。
データを別のブックに移動またはコピーするには、データを選択して、
[コピー]コマンドと[貼り付け]コマンドを使用して移動先または
コピー先のブックのシートに挿入してください。
これを回避するために色々と調べた結果、
出来上がったコードが以下なのですが、
もっとスマートなコードで実現する方法がありましたら、
ご教示いただけますでしょうか。
VBA
1 Dim myBook As String 2 myBook = ActiveWorkbook.Name 'このブックのファイル名を保存 3 4 Workbooks.Add '新規ワークブックを作成 5 6 Dim fullPath As String 7 fullPath = ActiveWorkbook.Path & "\newBook.xlsx" 8 9 Application.DisplayAlerts = False 10 ActiveWorkbook.SaveAs fullPath, xlOpenXMLWorkbook 11 Application.DisplayAlerts = True 12 13 'xlsx形式だとEXCELに認識させるために、一旦閉じてから再度オープンする 14 ActiveWorkbook.Close 15 Workbooks.Open fullPath 16 17 Workbooks(myBook).Activate 18 Worksheets("元シート").Activate 19 20 ThisWorkbook.Sheets("元シート").Copy _ 21 Before:=Workbooks("newBook.xlsx").Sheets("Sheet1")
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/06 02:18
2019/11/06 02:42
2019/11/06 05:11
2019/11/06 05:46