- ベストアンサー
マクロでエクセルシートのコピー
マクロでシート1を最後尾に名前をつけてコピーしたいと思ってます。 つけたい名前は、シート2のあるセルにかいてあります。 私は下記のように書いたのですが、エラーになってしまいます。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(newsheet) どのようにすればシートをシート名をつけてコピーできますか? 教えてください。 エクセル97です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんなんで、どーでしょう。 Sub Macro1() ' Dim sheets_cnt As Long sheets_cnt = ActiveWorkbook.Sheets.Count Sheets("Sheet1").Copy after:=Sheets(sheets_cnt) Sheets(sheets_cnt + 1).Name = Sheets("Sheet2").Cells(1, 1).Value ' End Sub
その他の回答 (3)
- Tall
- ベストアンサー率27% (19/69)
他の方と 似てますが。 sub シート名() Sname=worksheets("Sheet2").cells(1,1) worksheets("Sheet1").Select Worksheets("Sheet1").Copy after:=Worksheets("Sheet1") ActiveSheet.Name = Snam end sub でどうでしょうか?
お礼
ありがとうございます。 No.2のやり方でできました。
- m_hagizo
- ベストアンサー率65% (31/47)
すみません、No.1の回答を書いた者ですが・・・ No.1の回答はExcel2000でのものですので、97だとできないかも・・・。 できなかったら、申し訳ないです。
お礼
ありがとうございます。 Excel2000ということでしたので、No.2の方法でやってみました。
- m_hagizo
- ベストアンサー率65% (31/47)
WorksheetsのAddメソッドでできませんかねぇ・・・。 こんな感じになると思います。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Set NewWS = Worksheets.Add(After:=Worksheets("Sheet2")) NewWS.Name = newsheet ワークシートを追加すると、追加したシートがアクティブになるようです。
お礼
ありがとうございます。見事できました。 助かりました。