• ベストアンサー

マクロでエクセルシートのコピー

マクロでシート1を最後尾に名前をつけてコピーしたいと思ってます。 つけたい名前は、シート2のあるセルにかいてあります。 私は下記のように書いたのですが、エラーになってしまいます。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(newsheet) どのようにすればシートをシート名をつけてコピーできますか? 教えてください。 エクセル97です。

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

  • ベストアンサー
  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.2

こんなんで、どーでしょう。 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

akashyati
質問者

お礼

ありがとうございます。見事できました。 助かりました。

その他の回答 (3)

  • Tall
  • ベストアンサー率27% (19/69)
回答No.4

他の方と 似てますが。 sub シート名() Sname=worksheets("Sheet2").cells(1,1) worksheets("Sheet1").Select Worksheets("Sheet1").Copy after:=Worksheets("Sheet1") ActiveSheet.Name = Snam end sub でどうでしょうか?

akashyati
質問者

お礼

ありがとうございます。 No.2のやり方でできました。

  • m_hagizo
  • ベストアンサー率65% (31/47)
回答No.3

すみません、No.1の回答を書いた者ですが・・・ No.1の回答はExcel2000でのものですので、97だとできないかも・・・。 できなかったら、申し訳ないです。

akashyati
質問者

お礼

ありがとうございます。 Excel2000ということでしたので、No.2の方法でやってみました。

  • m_hagizo
  • ベストアンサー率65% (31/47)
回答No.1

WorksheetsのAddメソッドでできませんかねぇ・・・。 こんな感じになると思います。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Set NewWS = Worksheets.Add(After:=Worksheets("Sheet2")) NewWS.Name = newsheet ワークシートを追加すると、追加したシートがアクティブになるようです。

関連するQ&A