Excel

【Excel】VBAマクロで文字数を調べる(セル内の文字の長さを取得、チェック、カウント)方法【Len関数、Mid関数、Asc関数】

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを使用してセル内の文字数を調べる方法について解説していきます。

ポイントとしては、**Len関数**、**Mid関数**、**Asc関数**を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでセル内の文字数をカウント、チェック、取得、調べる方法【A列にデータあり、B列に文字数を表示、全角のみの文字列】【Len関数】

それではまず、全角のみの文字列について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ZenkakuMojiKazoeru()
    Dim LastRow As Long
    Dim i As Long
    Dim moji As String
    Dim hensuu As Integer

    LastRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To LastRow
        moji = Cells(i, 1).Value
        hensuu = Len(moji)
        Cells(i, 2).Value = hensuu
    Next i

End Sub

コードのAlt+F8を押し、マクロ選択画面でZenkakuMojiKazoeru関数を実行します。

このステップでは、A列にある全角のみの文字列の文字数をB列に表示しています。Len関数を使用して、文字列の長さを取得しています。

VBAマクロでセル内の文字数をカウント、チェック、取得、調べる方法【A列にデータあり、B列に文字数を表示、数値の桁数など半角のみの文字列】【Len関数】

続いては、半角のみの文字列について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub HankakuMojiKazoeru()
    Dim LastRow As Long
    Dim i As Long
    Dim suuchi As String
    Dim hensuu As Integer

    LastRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To LastRow
        suuchi = Cells(i, 1).Value
        hensuu = Len(suuchi)
        Cells(i, 2).Value = hensuu
    Next i

End Sub

コードのAlt+F8を押し、マクロ選択画面でHankakuMojiKazoeru関数を実行します。

このステップでは、A列にある半角のみの文字列や数値の桁数をB列に表示しています。Len関数を使用して、文字列の長さを取得しています。

VBAマクロでセル内の文字数をカウント、チェック、取得、調べる方法【A列にデータあり、B列に文字数を表示、全角と半角の文字列が混在】【Mid関数、Asc関数】

続いては、全角と半角の文字列が混在している場合について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KonzatsuMojiKazoeru()
    Dim LastRow As Long
    Dim i As Long
    Dim j As Integer
    Dim mojiTanni As String
    Dim hensuu As Integer

    LastRow = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To LastRow
        hensuu = 0
        For j = 1 To Len(Cells(i, 1).Value)
            mojiTanni = Mid(Cells(i, 1).Value, j, 1)
            If Asc(mojiTanni) > 127 Then
                hensuu = hensuu + 2
            Else
                hensuu = hensuu + 1
            End If
        Next j
        Cells(i, 2).Value = hensuu
    Next i

End Sub

コードのAlt+F8を押し、マクロ選択画面でKonzatsuMojiKazoeru関数を実行します。

このステップでは、A列にある全角と半角が混在している文字列の文字数をB列に表示しています。Mid関数とAsc関数を使用して、各文字が全角か半角かを判断しています。

まとめ

この記事では、ExcelのVBAマクロを使用して、セル内の文字数を調べる方法について解説しました。具体的には、Len関数、Mid