Excel入力のひと手間をなくす!番号だけ残すVBA(イベントマクロ)

Excelを使っていて、
入力用のリストを作成する際にこんなこと、ありませんか?

入力規則のリストは
「01 山田太郎」「02 佐藤花子」 のように作りたい

でもセルに残したいのは 番号だけ(01、02 など)

あとから手作業で削るのは面倒ですし、ミスの元にもなります。

そんなときに便利なのが、Worksheet_Change イベントマクロです。

 

やりたいこと

セルに
01 山田太郎
と入力(またはリスト選択)

入力確定と同時に
👉 「01」だけを自動で残す

 

使用するVBAコード

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    Dim inputValue As String

    ' C2のみを対象にする(必要に応じて変更)
    If Not Intersect(Target, Me.Range("C2")) Is Nothing Then
        Application.EnableEvents = False ' 無限ループ防止

        For Each cell In Target
            If Not IsEmpty(cell.Value) Then
                inputValue = CStr(cell.Value)
                ' 先頭から指定された文字数のみを抽出
                If Len(inputValue) > 0 Then
                    cell.Value = Left(inputValue, 2)
                End If
            End If
        Next cell

        Application.EnableEvents = True
    End If
End Sub

 

このマクロの動き

C2セルに入力があったときのみ反応

入力された文字列の
👉 先頭から2文字だけを自動抽出

それ以外の文字(氏名など)は自動で削除

 

カスタマイズポイント

・対象セルを変更したい場合
 Me.Range(“C2”) Me.Range(“C2:C100”)のように変更すれば、複数セルにも対応できます。

抽出する文字数を変えたい場合
 Left(inputValue, 2) の2を変更してください。
 4文字抽出したいときは、 Left(inputValue, 4)

 

こんな場面で便利

・出席番号・社員番号・管理番号の入力
・VLOOKUP や XLOOKUP 用のキー作成

入力のたびに手作業で修正する必要がなくなり、
入力ミス防止+作業効率アップにつながります。

ちょっとした工夫ですが、実務ではかなり重宝するマクロです。
同じような入力で悩んでいる方の参考になれば幸いです。

タイトルとURLをコピーしました