表を作成していると、データ処理に手間をかけていると仕事の作業効率が悪くなり時間ばかりかけていませんか?
顧客管理などで名簿があり、氏名の姓と名を自動的に分割して振り分けてくれたら楽ですよね。
この氏名分割作業を手作業でやりますか?それともVBAでやりますか?
Excel-VBAで氏名分割
このページにたどり着いたという事は、何らかの理由で私と同じくセルに直接エクセル関数を記載できないからVBAでやろうと思ったんじゃないですか?
ここでは、下の図の顧客名簿を参考にセル「B列」の氏名を「C列」に姓、「D列」に名をユーザーフォームに配置したコマンドボタンに記述してクリック表示させましょう。
Private Sub CommandButton1_Click()
Range(“B2:B9”).TextToColumns Destination:=Range(“C2”), DataType:=xlDelimited, Space:=True
End Sub
- コマンドボタン1がクリックされたら
- セルB2~B9の値をスペースの位置で分割して、セルC2を左上端に指定して分割してデータ入力をする
- マクロ記録終了
これで、このように氏名を分割してデータ入力が完成しました。
このままでも問題ないのですが、データ分割するたびに毎回「データ置き換えますか?」ってメッセージが表示されるのが目障りで手間なので、表示されないようにVBAコードを付け足しましょう。
Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Range(“B2:B9”).TextToColumns Destination:=Range(“C2”), DataType:=xlDelimited, Space:=True
Application.DisplayAlerts = True
End Sub
Application.DisplayAlerts = False で、メッセージを非表示に設定をしてから、氏名分割をして、 Application.DisplayAlerts = True で非表示設定を表示設定に戻します。
VBAで氏名分割は意外と簡単なので、ぜひ挑戦してみてくださいね。

Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!