.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. VBAの改行コードとは?ExcelVBAのセル内改行コード|ExcelVBAサンプルプログラム

VBAの改行コードとは?ExcelVBAのセル内改行コード|ExcelVBAサンプルプログラム

  • プログラミング言語
公開日時:   更新日時:
VBAの改行コードとは?ExcelVBAのセル内改行コード|ExcelVBAサンプルプログラム
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    システム
    エンジニア
    VBAとExcelの改行コードはどこが違うのですか。
    プロジェクト
    マネージャー
    VBAの改行コードは基本的にはCR+LFが用いられますが、Excelのセル内改行コードはLFのみが使われます。

    VBAの改行コードとは?


    VBAとはVisual Basic for Applicationsの略でExcelなどのMicrosoft Officeのアプリケーションで利用できるプログラミング言語の1つです。Visual BasicはGUIに対応した言語で、それをExcelやWordなどのアプリケーションでも操作できるように機能拡張した言語がVBAです。

    改行コードとは改行を表す文字コードのことを指します。WindowsではCR+LF、MacintoshではCR、Linux(UNIX)ではLFが多く使用されています。

    CRはキャリッジリターンのことで10進数で表すと13、16進数で表すと0Dです。LFはラインフィードのことで10進数で表すと10、16進数で表すと0Aとなります。これらは制御コードと呼ばれる文字コードです。

    VBAの改行コードはWindowsのCR+LFが基本です。ただし、Excelのセル内改行のように特殊な場合だけLFを用いることもあります。

    文字コードとは?

    コンピュータは数値しか認識できません。そのため文字を認識させるために文字ひとつひとつに対して特定の数値を割り当てました。これが文字コードです。

    文字コードにはいくつか種類がありますが、7ビットの文字コードのひとつにASCIIコードというものがあります。ASCIIコードは日本のパソコンでは多く使われていました。現在のパソコンで使われているUNICODEにもASCIIコードと同等の文字セットが含まれています。

    ExcelVBAのセル内改行コード

    Excelでセル内改行するにはAlt+Enterキーを押します。このとき入力される文字コードはvbLf(LF)です。

    以下にExcelVBAマクロのサンプルプログラムとしてA1セルに入力した文字列の文字コードを表示するプログラムをご紹介します。A1セルにAlt+Enterキーを押して改行コードを入力し、0A(LF)が表示されるのをご確認ください。

    Excelの改行コード1

    Excelでは基本的にCR+LFを改行コードとして扱っているようですが、CRのみやLFのみでも改行コードとして受け付けてくれます。

    実際に以下のサンプルプログラム(Sample2~Sample4)を実行してcsvファイルを作成し、Excelで開いてみてください。

    ファイルをダブルクリックしてExcelに読み込ませると、ほぼ期待通りに表示されるでしょう(CRのみの改行コードのときは読み込んだだけでは正しく表示されませんでしたが、セルをダブルクリックすると正しく改行されました)。

    どういうことかと申しますと、適当なタイミング(ファイル読み込み、コピー&ペースト、ダブルクリックなど)でExcel内部の改行コードが適切に置換されているということだと言えます。

    ただ1点、注意すべきところがあります。Excelでのセル内改行はLFのみとしないとVBAで処理する際に不具合が出ることがあるようです。

    ExcelVBAサンプルプログラム

    以下のサンプルプログラム(Sample2~Sample4)はA1セルに入力されている文字列の改行コードを換えてcsvファイルとして出力するものです。なお、出力されたファイルの内容を正確にご確認頂くにはバイナリファイルエディタを用いるとよいでしょう。

    Excelの改行コード2

    Excelの改行コードをVBAマクロから直接セルに入力してどうなるかを検証してみます。

    以下のサンプルプログラム(Sample5)はA2~A5セルに異なる改行コードを入れた文字列を出力しています。結果は、ほぼ期待通りに改行されます(CRのときだけダブルクリックしないと改行されません)。

    WordVBAでの改行コード

    WordVBAマクロでも改行コードはExcelVBAマクロと同じ扱いです。ファイル読み込み時に改行コードがCR+LF以外(CRのみ、またはLFのみ)のテキストファイルのときでも適切に変換されて読み込まれます。

    サンプルプログラム(Sample2~Sample4)を実行して、改行コードを換えたファイルを実際にWordで読み込んでみるとご理解頂けるでしょう。

    WordVBAサンプルプログラム

    以下のサンプルプログラム(SampleW1~SampleW4)は、それぞれテキストに埋め込む改行コードを換えているVBAマクロですが、いずれも同じ結果になることが確認できます。

    システム
    エンジニア
    WordVBAマクロでも改行コードはExcelVBAマクロと同じ扱いなのですね。
    プロジェクト
    マネージャー
    そのとおりです。ただ、VBAを用いる場合にはExcelのセル内改行はLFのみとし、その他は特に理由がない限りCR+LFに統一した方が良いです。

    改行コードの扱い方


    以上、VBAの改行コードについて述べてきました。

    ExcelやWordでは、いずれの改行コードでも適当なタイミングで適切な改行コードに変換されますので、他のアプリケーションで読み込ませるなどする時だけ、そのアプリケーションで扱える改行コードに変換してファイルを出力してやれば良いということになります。

    ただし、適切に変換されるからといってむやみに改行コードを換えて記述するのは良くありません。VBAを用いる場合にはExcelのセル内改行はLFのみとし、その他は特に理由がない限りCR+LFに統一した方が良いでしょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job