マクロを使用したワークシートの作成と命名(Microsoft Excel)
ジェフは、自分の「マスター」ワークシートのコピーを作成し、新しいワークシートの名前を入力するように求め、それをすべてマクロ内からワークシートタブの最後に移動したいと考えています。彼はこれを行うためにマクロを記録しようとしましたが、うまくいきませんでした。
記録されたマクロが機能しなかったという事実は、それほど驚くべきことではありません。
マクロを記録するときは、実行した手順を記録するようにExcelに指示します。
これらの手順(この場合)にはワークシートの名前が含まれているため、名前はマクロに記録されました。マクロをもう一度実行しようとすると、2番目のパスで作成しようとしているワークシートが最初のパスですでに作成されているため、エラーが発生します。
この場合、マクロを手動で作成する必要があります。プロセスの記録から始めることができ、次のようなコードが得られます:
Sub Macro1() Sheets("Master").Select Sheets("Master").Copy After:=Sheets(3) Sheets("Master (2)").Select Sheets("Master (2)").Name = "NewMaster" End Sub
コードはワークシートを(3枚目のシートの後に)配置し、常に同じ名前を付けることに注意してください。ここで変更することがたくさんあります。あなたがしたいことはそれを次のようなものに変えることです:
Sub CopyRename() Dim sName As String Dim wks As Worksheet Worksheets("Master").Copy after:=Sheets(Worksheets.Count) Set wks = ActiveSheet Do While sName <> wks.Name sName = Application.InputBox _ (Prompt:="Enter new worksheet name") On Error Resume Next wks.Name = sName On Error GoTo 0 Loop Set wks = Nothing End Sub
このマクロは、「マスター」という名前のワークシートをシートリストの最後にコピーし(ワークブックにシートがいくつあるかに関係なく)、有効な名前が入力されるまで新しいワークシート名の入力を求め続けます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(3898)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkマクロを使用したワークシートの作成と命名。