Excel VBA

【Excel VBA】【マクロ】【Tips】シートを追加しダイアログからシート名を入力するマクロ

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回はシートを追加しダイアログからシート名を入力するマクロです!

シートを追加しダイアログからシート名を入力するマクロ

過去の設定情報などを別シートで残しておきたい場合など、
今までは、手動でシートを追加して、設定範囲をコピーして、追加したシートに
値貼り付けして・・など手間がかかっていたものが、
今回のマクロを使うと一気に解決するかもしれません!

コード

Sub Main()
    Dim lastRow As Long
    Dim ans As String
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet

    Set ws1 = ActiveSheet
    'シート名取得
    ans = InputBox("シート名を入力してください", "シート名入力", "")
    
    'シート作成
    If ans <> "" Then
    
        Set ws2 = Worksheets.Add(after:=ActiveSheet)
        ws2.name = ans
    Else
        End
    End If
    
    'コピー
    lastRow = ws1.Cells(Rows.Count, "B").End(xlUp).Row
    ws1.Range(ws1.Range("B10"), ws1.Cells(lastRow, "C")).Copy
    ws2.Range("A1").PasteSpecial Paste:=xlPasteValues

    ws1.Activate
    Application.CutCopyMode = False

End Sub

コードの説明

変数を宣言します。
ws1に現在選択されているシートを格納します。
インプットボックスを使い、ダイアログボックスを表示し、新しいシートの名称を入力してもらいます。
入力された場合は、入力値をシート名としws1シートの右隣にシートを追加します。
ダイアログに何も入力されなければ処理を終了します。
コピーする範囲の最終行を取得します。今回はB列の最終行を取得しています。
データ範囲をコピーし、追加したシートのA1セルに値貼り付けします。
コピー範囲については、必要に応じて変更してください。
最後にws1シートに戻り、コピーモードを解除します。

さいごに

毎週使うマクロがあって、毎回設定が変わるのですが念のため過去の設定も残しておきたい!
というときにこのマクロを使うととても便利でした。
(もっと早く作ればよかった・・笑)
手作業でコピペするのも大した手間ではないけれど、回数が増えればちりつもなので・・
1分くらいの作業が5秒くらいになりました!すごい効率化!

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です