• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アドバイスをお願いします(VBAで・・・))

VBAを使用してExcel2010のシートを新たなBookにコピーする方法

このQ&Aのポイント
  • Excel2010を使用して、特定のシートを新たなBookにコピーする方法を教えてください。また、コピーしたシートの名前を「L5」セルにある文字列にする方法も教えてください。
  • VBA初心者ですが、Excel2010で特定のシートを新たなBookにコピーして、名前を付けて保存する方法を教えてください。
  • VBAを使用してExcel2010で特定のシートを新たなBookにコピーする方法について教えてください。また、コピーしたシートの名前を「L5」セルにある文字列にする方法も知りたいです。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

>ひとつだけ、行の高さが16行目までは完璧なのですが、 >17行目以降が違う高さ(低く)なってしまいました。 手元にExcel2010が有りませんので症状は解りませんが http://answers.microsoft.com/ja-jp/office/forum/office_2010-excel/excel2010%E3%81%A7%E8%A1%8C%E9%96%93%E3%81%8C/124269ca-455b-e011-8dfc-68b599b31bf5 【EXCEL2010で行間が勝手に広がる】 こんな事があるようですね

-antsu-
質問者

お礼

watabe007さん、度々の回答ありがとうございます。 教えていただいたサイトに記載がある内容を 試しましたが、修復できませんでした。 ただ、自分なりに考えた結果、 Sheets(1).Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け このあとに、行の高さを設定するコードを付け足したところ 改善することができました。 度重なる質問に応じていただき本当に感謝です。 ありがとうございました。

その他の回答 (3)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

("L5").Value & ".xls" ↓ ("L5").Value & ".xlsx"

-antsu-
質問者

補足

watabe007さん、何度もすみません。 教わったコードで、無事にできたのですが、 ひとつだけ、行の高さが16行目までは完璧なのですが、 17行目以降が違う高さ(低く)なってしまいました。 度々で申し訳ないのですが、この改善策は ありますでしょうか?

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

Sub サンプル2()   Dim wb As Workbook   Dim myPath As String   Set wb = Workbooks.Add(xlWBATWorksheet)   With ThisWorkbook     myPath = .Path     .Sheets("オリジナル").Cells.Copy   End With   With wb     .Sheets(1).Range("A1").PasteSpecial Paste:=xlValues '値貼り付け     .Sheets(1).Range("A1").PasteSpecial Paste:=xlFormats '書式貼り付け     .SaveAs Filename:=myPath & "\" & .Sheets(1).Range("L5").Value & ".xls"     .Close   End With End Sub

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>この中の一つのシートだけを新たなBookにコピーして、 ThisWorkbook.Sheets("オリジナル") で宜しいですか? >名前を付けて保存する際、Book名を、"L5"セルにある文字列にしたいと思い ThisWorkbook.Sheets("オリジナル").Range("L5") で宜しいですか? ThisWorkbookと同じPathに保存しました。 Sub サンプル()   Dim myPath As String   With ThisWorkbook     myPath = .Path     .Sheets("オリジナル").Copy 'コピー   End With   With ActiveWorkbook     .SaveAs Filename:=myPath & "\" & Range("L5").Value & ".xlsx"     .Close   End With End Sub

-antsu-
質問者

補足

watabe007さん、ありがとうございます。 >ThisWorkbook.Sheets("オリジナル") で宜しいですか? 実際のシート名は違いますが、変更するので大丈夫?です。 >ThisWorkbook.Sheets("オリジナル").Range("L5") で宜しいですか? >ThisWorkbookと同じPathに保存しました。 With ActiveWorkbook     .SaveAs Filename:=myPath & "\" & Range("L5").Value & ".xlsx" ここのことだと思うのですが、 Sheets(オリジナル)があるBookと同じフォルダの中に・・・ ということでしょうか? あと、教えていただいたコードを試してみましたが、 コピー元のシートにマクロがあるので、 「次の機能はマクロなしのブックに保存できません」とでます。 これが出ないように、シート内のデータと書式だけを コピーしたいのですが・・・ 質問内容が不十分で申し訳ありません。 やりたい事を整理すると".xlsm"ファイルにある複数シートのうち 特定の一つのシートだけを新しいBookにコピーしたい。 この時、マクロは不要でデータと書式をコピーして、 名前を付けて保存。Book名をコピーしたBookの"L5"の 文字列をBook名にして保存したい。 再度お教えいただけないでしょうか? よろしくお願いいたします。

関連するQ&A