『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】Len関数で文字数をカウント

この記事では、VBA文字数を数える方法について、サンプルコード付きで解説します。

【VBA】Len関数

VBA の Len関数 の引数に文字列を渡すと文字数をカウントして Long 型で返します(空白文字も1文字として処理されます)。たとえば

Len("プログラミングは楽しいな")

と記述すると全文字数「12」が返されます。
 
ユーザーさんが InputBox に入力した文章の文字数を数えるプロシージャを載せておきます。

'[VBA] Lenで文字数をカウントする
Sub Count_Letter()
  Dim moji As String
  moji = InputBox("文章を入力してください")
  x = Len(moji)
  MsgBox x
End Sub

Count_Letter() を実行すると「文章を入力してください」というダイアログボックスが現れるので、好きな文章(日本語でもアルファベットでもかまいません)を入力すると、文字数がカウントされてメッセージボックスに表示されます。たとえば「こばとちゃんは美人だな」と入力すると文字数「11」が返ります。
 
「こばとちゃんは美人だな」の文字数は「11」ですね。
え? 二度も同じことを言うなって? こばとの勝手でしょ。

現在開いているシート(アクティブシート)の A 列のセルに入力されている文字を全てカウントするマクロを載せておきます。

'[VBA] A列に入力されている文字の数を全てカウントする

Sub Count_Column_Letter()

  Dim r1 As Long, r2 As Long
  Dim x As Long, ct As Long
  Dim moji As String

  r1 = ActiveSheet.Rows.Count
  r2 = Cells(r1, 1).End(xlUp).Row

  ct = 0

  For i = 1 To r2
    moji = Cells(i, 1)
    x = Len(moji)
    ct = ct + x
  Next i

  MsgBox ct

End Sub

アクティブシートの全行数を r1 に格納して、その数をもとに「A 列 r1 行」から「.End(xlUp).Row」によってデータの入力されている末尾のセルの行数を参照して r2 に入れます。そして先頭からデータの入った末尾のセルまでループさせて文字数を拾い続けるという仕組みになっています。
 
Len関数の引数に変数を指定すると、その変数に必要なバイト数を Long 型で返します。Integer 型と Long 型に必要なバイト数をカウントするプロシージャを載せておきます。

'[VBA] 変数のバイト数をカウントする
Sub Count_Byte()
  Dim x As Integer, y As Long
  bytex = Len(x)
  bytey = Len(y)
  MsgBox (bytex)
  MsgBox (bytey)
End Sub

Count_Byte() を実行すると、メッセージボックスにバイト数「2」、「4」が表示されます。

コメント

  1. あとりえこばと より:

    [ChatGPT] VBAでは、Len関数を使用して文字列の長さを取得することができます。Len関数は、指定された文字列の文字数を返します。以下は、Len関数を使用して文字列の長さを取得する方法の例です。

    Sub countCharacters()
        Dim myString As String
        myString = "Hello World!"
        MsgBox Len(myString)
    End Sub

     この例では、変数myStringに「Hello World!」という文字列を代入し、Len関数を使用して文字列の長さを取得し、その値をMsgBox関数を使用してメッセージボックスに表示しています。また、VBAでは、空白を含む文字列の長さを取得する場合、Trim関数を使用して空白を除去する必要があります。以下は、Trim関数を使用して文字列の長さを取得する方法の例です。

    Sub countCharacters()
        Dim myString As String
        myString = "  Hello World!  "
        MsgBox Len(Trim(myString))
    End Sub

     この例では、変数myStringに「 Hello World! 」という文字列を代入し、Trim関数を使用して先頭と末尾の空白を除去した後、Len関数を使用して文字列の長さを取得し、その値をMsgBox関数を使用してメッセージボックスに表示しています。以上のように、VBAではLen関数を使用して文字列の長さを取得することができます。