VBAでセルの書式を文字列に変更する方法|NumberFormatプロパティの使い方を解説

目次

スポンサードリンク

Excel VBAでは、セルの表示形式(書式)をプログラムから変更することができます。この記事では、セルの書式を「文字列」に変更する方法を中心に、NumberFormatプロパティの基本的な使い方を紹介します。

NumberFormatを使って文字列形式に変更する方法

VBAでセルの書式を変更するには、Rangeオブジェクトの NumberFormat プロパティを使います。以下例ではセルA1 の書式を「文字列」に変更しています。先頭が0のテキストなど、標準書式のままだと、Excelの仕様で0が消えてしまいますが、書式を文字列にすることで0を残すことができます。

Range("A1").NumberFormat = "@"

セル範囲を指定して一括変更したいときは、以下のように範囲を指定した書き方になります。以下例ではA1からC10までのセル範囲を対象に書式を変更します。

Range("A1:C10").NumberFormat = "@"

シート全体のセル書式を変更する方法

対象のシート全体は対象に書式を変更したいときは、Cells を使用します。下記例では、アクティブシート全体の書式が「文字列」になります。

‘アクティブシート全体を指定する場合
Cells.NumberFormat = "@"

‘シートを指定して実行する場合
TargetSheet.Cells.NumberFormat = "@"

まとめ

VBAで文字列形式にしておくことで、先頭ゼロの保持や数値の誤変換を防ぐことができます。データ入力やCSVインポート時にも非常に役立つテクニックです。


Excel VBAのテクニックを幅広く学べるおすすめ書籍
基本の定番ネタから応用的なテクニックまで、網羅的にテクニックを学べる書籍です。Microsoft365/Office2024対応。手元に置いておきたい一冊です。

中級者以上におすすめの書籍
VBAというプログラミング言語を本格的に学びたい人におすすめの書籍です。VBAの言語としての仕組みをしっかり理解したい人に。