第31回.セルの書式(表示形式,NumberFormatLocal)
セルは表示形式を指定することで、セルに入っている値は同じ値でも色々な見え方をさせる事が出来ます。
セルの値はそのままで、見た目をユーザーに見やすい形にすることが出来ます。
12345
12,345
\12,345
等々の違う表示方法を指定する事が出来ます。
計算等においては同一として扱えます。
あくまで、画面上での見え方を変えているだけです。
マクロでの表示書式の指定
NumberFormatLocalは、Rangeオブジェクトのプロパティです。
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秒を超える秒を表示します。 |
上記は全てではありません、マクロVBAで使う可能性の高いものだけにしています。
表示書式指定文字の調べ方
マクロで表示形式を指定するのは、特殊な部分に限定した方が良いでしょう。
「ユーザー定義」で表示を確認して使えば良いでしょう。
これが解らない場合は、
申し訳ないが、マクロの前にエクセルの基本を学び直してください。
Range.NumberFormatについて
ほぼ同じなのですが、同じ書式指定文字でも表示に違いがでてくる場合があります。
Localと付くものはPC環境に依存する設定を有効にする場合に使います。
12345 → \12,345 と表示したい時、
Range("A1").NumberFormat = "\#,##0"
これでは期待した形式になりません。
"\"は、次に続く特殊文字をそのまま表示する記号として扱われてしまいます。
Range("A1").NumberFormatLocal = "\#,##0"
これであれば、期待通りに表示されます。
しかし、
その違いを追及するより、NumberFormatLocalのみ使用するようにした方が手っ取り早いと思います。
実際に表示されている形式の文字列を取得
表示形式の指定により、実際の値とは違う形式で表示されている文字列を取得するにはTextプロバティを使用します。
また、日付時刻表示のセル値を数値で取得する場合はValue2プロバティを使用します。
Value : 2023/06/20 ・・・ 日付型
Value2 : 45097 ・・・ 倍精度浮動小数点型
Text : 2023年06月20日 ・・・ 文字列型
セルの値について(Value,Value2,Text)|VBA技術解説
以下も参考にしてください。
セル幅不足による###表示や指数表示を判定する
表示形式は、エクセルの基本中の基本です。
しっかりと押さえておいて下さい。
同じテーマ「マクロVBA入門」の記事
第28回.セル・行・列の選択(Select,ActivateとCurrentRegion)
第29回.セル・行・列の削除・挿入(Delete,Insert)
第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4
第37回.ブック・シートの指定
第39回.セルのクリア(Clear,ClearContents)
新着記事NEW ・・・新着記事一覧を見る
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
