本文へスキップ

別館:エクセルQC館 別館:エクセル株式館

  1. トップページ>
  2. Tips>
  3. Office365、Excel:VBAでワークシートとLen関数が異なる

Tipstips

備忘録として、主にパソコン関係のTipsを記載して行きます。


新着情報
@UiPath、メモ
AOffice365、Excel:VBAで画面更新がチラツク時の対策
BOffice365、Excel:勝手に手動計算になる原因
COffice365、Excel:フィルターで3つ以上の条件にする方法
DOffice365、Excel:シート同士の違いを見つける方法

Office365、Excel:VBAでワークシートとLen関数が異なる

Office365は、表計算ソフト、ワープロソフト、プレゼンテーションソフト、データベースソフト等が
入っているオフィスソフトです。これをインストールして置けば、家庭や仕事で多くの事が出来る様になります。

しかし、VBAでワークシートとLen関数の挙動が異なるので、注意が必要です。使用したパソコンは、下記の
ソフトを使用していました。

OS       : Windows10(64bit)バージョン21H1(OSビルド 19043.1055)
オフィスソフト  : Excel for Microsoft 365 MSO(16.0.14026.20294)
           64bit

以下、Office365、Excel:VBAでワークシートとLen関数が異なるを記載して行きます。

(項目1)
 ・VBAでワークシートとLen関数の挙動が異なるので、注意が必要です。
 ・何れも文字列の文字数を調べる関数ですが、1文字を半角や全角により1バイトまたは2バイトで数えます。

(項目2)
 ・ワークシート関数とVBA関数で、Len関数は以下の様になります。

  ワークシート関数: LEN()、 LENB()

  VBA関数   : Len()、 LenB()

(項目3)
 ・上記の違いを表で纏めました。
  

(項目4)
 ・VBAコードは、以下の通りです。
  Sub Test02()

    Range("C7:F9").Select
    Selection.ClearContents

    'ワークシート関数 LEN() ←半角:1バイト、 全角:1バイト
    Range("C7") = Application.Evaluate("LEN(B7)")
    Range("C8") = Application.Evaluate("LEN(B8)")
    Range("C9") = Application.Evaluate("LEN(B9)")

    'ワークシート関数 LENB() ←半角:1バイト、 全角:2バイト
    Range("D7") = Application.Evaluate("LENB(B7)")
    Range("D8") = Application.Evaluate("LENB(B8)")
    Range("D9") = Application.Evaluate("LENB(B9)")

    'VBA関数 Len() ←半角:1バイト、 全角:1バイト
    Range("E7") = Len(Range("B7"))
    Range("E8") = Len(Range("B8"))
    Range("E9") = Len(Range("B9"))

    'VBA関数 LenB() ←半角:2バイト、 全角:2バイト
    Range("F7") = LenB(Range("B7"))
    Range("F8") = LenB(Range("B8"))
    Range("F9") = LenB(Range("B9"))

    Range("G2").Select

  End Sub

(項目5)
 ・以上で、Office365、Excel:VBAでワークシートとLen関数が異なるは終了です。



contents

エクセル将棋館

日本国

地方都市


スポンサード リンク