今日はお客様のリストを整理しておりまして、そのときにお名前の姓と名に区切られたデータがないことに気がつきました。
そこで、姓名を区切るためのマクロを考えてみました。
かなり機械的ですが、姓は2文字である可能性が高いので、ひとまず3文字目に半角スペースを入れて一次処理とし、あとは手作業で修正という方針にしてみました。
いわゆる捨てマクロ(特定の処理のためにとりあえず作ったマクロ)ですが、例として紹介します。
このマクロでできること
現在の文書に記載されている文字列に対して処理をします。
各段落の最初の3文字目に(2文字目の後に)、半角スペースを挿入します。
段落の3文字目に全角のスペースや半角のスペースが入っている場合でも表記を統一します。
(処理前)
(処理後)
マクロの解説
段落毎に処理をするので、For Each .. Next ステートメントで段落オブジェクトに対して処理を行いました。
文字列を挿入するのは、もちろんInsertBefore メソッドです。
マクロ
Sub 段落先頭3文字目に半角スペースを挿入する() Dim myPara As Paragraph '------------------------------------------- '段落3文字目が全角スペースの場合、半角化 '------------------------------------------- For Each myPara In ActiveDocument.Paragraphs If myPara.Range.Characters.Count > 2 Then If myPara.Range.Characters(3).Text = " " Then myPara.Range.Characters(3).Text = " " End If End If Next '------------------------------------------- '段落3文字目に半角スペースを挿入 '------------------------------------------- For Each myPara In ActiveDocument.Paragraphs If myPara.Range.Characters.Count > 2 Then If myPara.Range.Characters(3).Text <> " " Then myPara.Range.Characters(3).InsertBefore " " End If End If Next End Sub