- 公開日:
- 更新日:
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)は、LF改行(セル内改行)するという意味です。
上図では、A1セルとB1セルの文字列を改行しながら結合した状態の文字列が、C1セルに表示されています。
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)の文字コードを利用して、文字列改行の状況について比較をしてみましょう。
Chr(10)、つまり定数「vbLf」を含むコードを入力してみましょう。このコードの詳細については、以下の記事を参照してください。
シートを確認すると、セル内にある「図表4-5-3-20」と「IPv6サービスの対応状況(ISP全体及び規模別)」の文字列が改行された状態であることが確認できました。
今度は同じVBAコードで、Chr(13)、つまり定数「vbCr」のみ書き換えたコードを入力してみましょう。
その結果、「vbCr」を含むVBAのコードでは、指定した文字列の位置で改行することができませんでした。
以上、Chr(10)である「vbLf」を含むVBAコードと、Chr(13)である「vbCr」を含むVBAコードでセル内の文字列の改行を実行し、比較しました。
その結果、「vbLf」を含むVBAコードでは文字列の上の行と下の行を指定して改行することができ、「vbCr」を含むVBAコードでは改行できないことが確認されました。