Sponsored Links
こんにちは!Lenocoです。本日も見てくださりありがとうございます。
今回はシートを追加しダイアログからシート名を入力するマクロです!
Sponsored Links
シートを追加しダイアログからシート名を入力するマクロ
過去の設定情報などを別シートで残しておきたい場合など、
今までは、手動でシートを追加して、設定範囲をコピーして、追加したシートに
値貼り付けして・・など手間がかかっていたものが、
今回のマクロを使うと一気に解決するかもしれません!
コード
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
Sponsored Links