ExcelマクロVBA入門
第31回.セルの書式(表示形式,NumberFormatLocal)

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2019-07-08

第31回.セルの書式(表示形式,NumberFormatLocal)


セルは表示形式を指定することで、セルに入っている値は同じ値でも色々な見え方をさせる事が出来ます。
セルの値はそのままで、見た目だけをユーザーに見やすい形にすることが出来ます。
同じ数値の、12345でも
12345、12,345、\12,345
等々の違う表示方法を指定する事が出来ます。


しかし、数値は同じ、12345です、計算等においては同一として扱えます。
あくまで、画面上での見え方を変えているだけです。

マクロでの表示書式の指定

Range.NumberFormatLocal = "表示書式指定文字"
Range.は、Range・Cells・Rows・Columns等、Rangeオブジェクトになります。
NumberFormatLocalは、Rangeオブジェクトのプロパティです。


例.
Range.NumberFormatLocal = "@" '文字列
Range.NumberFormatLocal = "#,###"'カンマ区切りで0サプレス
Range.NumberFormatLocal = "0.00" '小数点2桁固定
Range.NumberFormatLocal = "yyyy/mm/dd" '日付、月・日を2桁

表示書式指定文字

ワークシートで、「セルの書式設定」→「表示形式」
ここで、「ユーザー定義」で指定する、書式指定文字と同じです。
書式指定文字は、多くの指定方法があります。
代表的なところを掲示します。

書式指定文字

説明
G/標準 標準の表示形式です。
_(アンダーバー) _(アンダーバー)に続く文字の幅だけ文字間隔を空けることができます。
" 「"」で囲まれた文字列を表示します。
入力値を文字列としてそのまま表示します。
# 小数点のいずれの側でも表示形式の # 記号の数より少ない場合に 0 は表示されません。
0 数値の桁数が表示形式の 0 の桁数より少ない場合に、表示形式の桁まで 0 が付加されます。
? 有効桁以外の 0 にスペースが挿入されるため、列内で小数点の位置が整列されます。
. (ピリオド) 数値に小数点を表示します。
,(カンマ) 数値に桁区切り記号を表示します。
yy 年を2桁の数値で表示します。
yyyy 年を4桁の数値で表示します。
g 元号のアルファベット1文字が表示されます。M,T,S,Hが表示できます。
gg 元号の1文字が表示されます。明,大,昭,平
ggg 元号が表示できます。明治,大正,昭和,平成
e 年数が1桁で表示されます。
m 月数を表示します。1~12が表示できます。
mm 01~12が表示できます。1~9は01~09と0付で表示されます。
mmm Jan~Dec
mmmm January~December
mmmmm J~D頭文字が表示されます。
d 日数を表示します。1~31が表示できます。
dd 01~31が表示できます。
ddd Sun~Sat
dddd Sunday~Saturday
aaa 日~土
aaaa 日曜日~土曜日
h 時を表示します。0~23が表示できます。
hh 00~23が表示できます。
m 分を表示します。0~59が表示できます。
mm 00~59が表示できます。
s 秒を表示します。0~59が表示できます。
ss 00~59が表示できます。
[h] 24時を超える時間を表示します。
[m] 60分を超える分を表示します。
[s] 60秒を超える秒を表示します。

上記は、全てではありません、マクロで使う可能性の高いものだけにしています。

表示書式指定文字の調べ方

そもそも、表示形式の指定は、

正の数の書式;負の数の書式;ゼロの書式;文字列の書式
このように指定するものですが、これはエクセルの基本として押さえて置く事でしょう。

一度設定したら変更することが無いのであれば、マクロではなく、シートにあらかじめ設定しておく方が効率的です。
マクロで表示形式を指定するのは、特殊な部分に限定した方が良いでしょう。

マクロで書式を設定する時に、書式文字が分からない場合は、
「ユーザー定義」で表示を確認して使えば良いでしょう。
もし、「セルの書式設定」→「表示形式」→「ユーザー定義
これが解らない場合は、
申し訳ないが、マクロの前にエクセルの基本を学び直してください。

表示形式.ユーザー定義の基礎
設定するセルを選択 F2またはクリックから「セルの書式設定」表示形式(一番左のタブ) 分類から「ユーザー定義」を選択 「種類」のすぐ下のボックス ここで入力する文字列が多種多用なものとなります。以下のページを参考にご覧ください。Microsoftサポート「Excelのセルの表示形式で[ユーザー定義]に使用できる書式記号について」基本として

Range.NumberFormatについて

最期にLocalが付かない、NumberFormatというプロパティもあります。
ほぼ同じなのですが、同じ書式指定文字でも、表示に若干の違いがあります。
代表的な所では、
12345 → \12,345 と表示したい時、
Range("A1").NumberFormat = "\#,##0"
これでは期待した形式になりません。
"\"は、次に続く特殊文字をそのまま表示する記号として扱われてしまいます。
Range("A1").NumberFormatLocal = "\#,##0"
これであれば、期待通りに表示されます。
しかし、
その違いを追及するより、NumberFormatLocalのみ使用するようにした方が賢明です。


表示形式は、エクセルの基本中の基本です。

しっかりと押さえておいて下さい。




同じテーマ「マクロVBA入門」の記事

第28回.セル・行・列の選択(Select,Activate)
第29回.セル・行・列の削除・挿入(Delete,Insert)
第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4
第37回.ブック・シートの指定
第38回.セルに計算式を設定(Formula)


新着記事NEW ・・・新着記事一覧を見る

Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • セルの書式(表示形式,NumberFormatLocal)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ