今回は、文字列の切り出し、文字列の結合を行います。
「最高に色っぽい女優ランキング」から名前を使わせて頂きました。
【課題】
漢字の苗字、ふりがなの苗字、漢字の名前、ふりがなの名前を使い
漢字の苗字名前をC列に設定、ふりがなの苗字名前をD列に設定する
例:深田(ふかだ)恭子(きょうこ)の場合
C列:深田恭子
D列:ふかだきょうこ
【VBA】
Sub cutUnion() Dim i As Long '苗字変数 Dim miyo1 As String Dim miyo2 As String Dim miyobuf1 As String Dim miyobuf2 As String Dim miyobuf3 As String '名前変数 Dim name1 As String Dim name2 As String Dim namebuf1 As String Dim namebuf2 As String Dim namebuf3 As String For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row miyobuf1 = InStr(Cells(i, 1), "(") miyobuf2 = InStr(Cells(i, 1), ")") - 1 miyobuf3 = miyobuf2 - miyobuf1 miyo1 = Left(Cells(i, 1), miyobuf1 - 1) miyo2 = Mid(Cells(i, 1), miyobuf1 + 1, miyobuf3) namebuf1 = InStr(Cells(i, 2), "(") namebuf2 = InStr(Cells(i, 2), ")") - 1 namebuf3 = namebuf2 - namebuf1 name1 = Left(Cells(i, 2), namebuf1 - 1) name2 = Mid(Cells(i, 2), namebuf1 + 1, namebuf3) ' 苗字名前 Cells(i, 3) = miyo1 & name1 ' 苗字名前(ふりがな) Cells(i, 4) = miyo2 & name2 Next End Sub
簡単な説明
・「Cells(Rows.Count, 1).End(xlUp).Row」は、以前説明をしたのでこちらを御覧ください
・「miyobuf1 = InStr(Cells(i, 1), "(")」は、「"("」の位置を取得する
「深田(ふかだ)」の場合、3を取得する
・「miyobuf2 = InStr(Cells(i, 1), ")") - 1」は、「")"」の位置を取得し、-1をする
「深田(ふかだ)」の場合、6を取得する
・「miyobuf3 = miyobuf2 - miyobuf1」は、「深田(ふかだ)」の「ふかだ」を取得する文字数を取得する
・「miyo1 = Left(Cells(i, 1), miyobuf1 - 1)」は、「深田(ふかだ)」の左から「miyobuf1 - 1:3−1=2」2文字取得する
・「miyo2 = Mid(Cells(i, 1), miyobuf1 + 1, miyobuf3)」は、「深田(ふかだ)」の左の「miyobuf1 + 1:4」文字目から「miyobuf3:3」文字いを取得する。
「深田(ふかだ)」の場合、「ふかだ」を取得する。
あなたのお役に立てるなら、コピーして使用してください。
今後も勉強した内容を記載して行きますので、お役に立てるものがあれば使ってください。
VBA開発もしておりますので開発のご要望があればご連絡をください。
VBA開発依頼受付はこちらから