経緯
Excelで作業していると、既存のシートをコピーして再利用したい場面がよくあります。
これまではシートのタブを右クリックして「移動またはコピー」を選び、手動で複製していましたが、この作業が面倒に感じたため、VBAで自動化できないかを検討しました。
そこで今回は、Excel上のボタンをクリックするだけで、現在のシートを複製できるマクロを作成しました。
実現したい仕様
- Excelシート上に「複製」ボタンを配置
- ボタンを押すと、新しいシート名を入力するダイアログボックスが表示される
- 入力された名前で、現在のシートをブックの先頭に複製
- シート名が既存のものと重複していた場合は無視
実装コード(VBAマクロ)
以下が実際に使用しているマクロのコードです。
Sub DuplicateSheetAnd()
Dim newSheetName As String
Dim newSheet As Worksheet
' シート名の入力を求めるダイアログボックスを表示
newSheetName = Application.InputBox("新しいシート名を入力してください:", "シート名入力", Type:=2)
' 入力がキャンセルされた場合は処理を終了
If newSheetName = "False" Then Exit Sub
' 現在のシートを複製し、複製されたシートを変数に格納
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1)
Set newSheet = ActiveSheet
' 新しいシートに名前を設定
On Error Resume Next ' 既に同じ名前のシートが存在する場合のエラーを無視
newSheet.Name = newSheetName
On Error GoTo 0 ' エラーハンドリングを元に戻す
End Sub
このマクロは、選択中のアクティブシートをそのままコピーして先頭に配置し、指定した名前に変更する仕様です。
ボタンの設置方法(図形ボタン)
このマクロを使うには、以下の手順でボタンを作成してください。
- Excelのリボンから「挿入」→「図形」を選ぶ
- 好きな図形をワークシート上に配置
- 右クリックして「マクロの登録」→「DuplicateSheetAnd」を選択
これで、図形ボタンを押すと、マクロが実行されます。
補足:今後の応用について
今回のようにシートを簡単に複製できる仕組みがあると、業務用のテンプレート作成や日次シートの量産に非常に役立ちます。
私はこのあと、複製するだけでなく、シート内の内容を初期状態に戻す処理なども組み込んで応用しています。
まとめ
- マウス操作を減らし、シート複製をワンクリックで実行可能
- 新しいシート名は毎回入力でき、自由度も高い
- マクロ初心者でも比較的簡単に導入できる内容
業務効率化やテンプレート運用の自動化にも応用できますので、ぜひ一度お試しください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
