• 公開日:
  • 更新日:

Excelの改行をする際のCHAR(10)とCHAR(13)の違い

Excel VBAのコードで、Chr(13)やChr(10)を使う際、どちらも改行される時とされない時があります。この場合、VBAの文字コードであるChr(13)やChr(10)を理解する必要があります。

CHAR(10)とCHAR(13)の文字コードの違いについて解説します。CHARとChrとの違いについても説明します。

CHARとChrの違い

CHAR(数値)はセル関数、Chr(数値)はVBA関数で使いますが、意味は同じです。

CHAR(10)

CHAR関数の(10)は、LF改行(セル内改行)するという意味です。

上図では、A1セルとB1セルの文字列を改行しながら結合した状態の文字列が、C1セルに表示されています。

chr(10)

Chr(10)は、数式で使われるCHAR(10)と同じ意味を持ち、VBA関数で文字列を改行するために使用されます。

Excelで改行する際のCHAR(10)とCHAR(13)の違い

CHAR(10)とCHAR(13)を比較する際は、VBAのChr(10)とChr(13)のことを指すケースが多いです。

定数説明
Chr(10)vbLfライン フィード
Chr(13)vbCrキャリッジ リターン

Chr(10)は「vbLf」という改行コードに該当し、Linuxで一般的に使用されています。印字位置を1行送ることを指示しています。

Chr(13)は「vbCr」という改行コードに該当し、これは主にMacOSで使用されています。印字位置を文頭に戻すことを指示しています。

VBAコードで文字列の改行を比較する

実際にWindowsのPCを使って、Excel VBAでCHAR(10)とCHAR(13)の文字コードを利用して、文字列改行の状況について比較をしてみましょう。

VBAコードを入力

Chr(10)、つまり定数「vbLf」を含むコードを入力してみましょう。このコードの詳細については、以下の記事を参照してください。

Excel VBAの改行コードの使い方

改行された状態

シートを確認すると、セル内にある「図表4-5-3-20」と「IPv6サービスの対応状況(ISP全体及び規模別)」の文字列が改行された状態であることが確認できました。

VBAコードを入力

今度は同じVBAコードで、Chr(13)、つまり定数「vbCr」のみ書き換えたコードを入力してみましょう。

枠線で改行された状態

その結果、「vbCr」を含むVBAのコードでは、指定した文字列の位置で改行することができませんでした。

以上、Chr(10)である「vbLf」を含むVBAコードと、Chr(13)である「vbCr」を含むVBAコードでセル内の文字列の改行を実行し、比較しました。

その結果、「vbLf」を含むVBAコードでは文字列の上の行と下の行を指定して改行することができ、「vbCr」を含むVBAコードでは改行できないことが確認されました。