VBAで「文字列の切り出しと文字列の結合」やってみる

目安時間:約 5分

今回は、文字列の切り出し、文字列の結合を行います。
「最高に色っぽい女優ランキング」から名前を使わせて頂きました。
【課題】
漢字の苗字、ふりがなの苗字、漢字の名前、ふりがなの名前を使い
漢字の苗字名前を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開発依頼受付はこちらから

この記事に関連する記事一覧

コメントフォーム

名前

メールアドレス

URL

コメント

トラックバックURL: 
プロフィール

50歳、派遣社員。いつもいつも派遣切りにビクビクしながら生きています。50歳という大台を迎えると派遣先がほとんどなく、次の派遣先は無いに等しい。でも、家庭を支えなければならない。だから私は、複数の仕事が出来るように在宅ワークが出来るプログラミング、ブログを選択。50歳からフリーランスを目指してプログラミング、ブログを始めました。

私と一緒に始めませんか?

お問い合わせ
プログラミング依頼

 

最近の投稿
アーカイブ

ページの先頭へ