【VBA】Format関数をマスター!基本と応用テクニック

この記事では、Excel VBA(Visual Basic for Applications)で頻繁に用いられるFormat関数について、その基本的な使い方から応用テクニックまで、より詳細にわたって解説します。この関数は、Excel作業を効率化するためには欠かせないものであり、特に日付や数値、文字列などのデータを特定の書式に変換する際に非常に便利です。

目次

Format関数の基本

Format関数とは何か?

Format関数は、VBAで指定した値を特定の書式に変換するための関数です。この関数を使うことで、例えば日付データを”yyyy年mm月dd日”のような形式に変換したり、数値をカンマ区切りにしたりすることができます。

書式

関数の基本的な書式は以下の通りです。

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
  • expression: 書式を変換したい値を指定します。
  • format: 変換後の書式を指定します。
  • firstdayofweek: 週の最初の日を指定します(オプション)。
  • firstweekofyear: 年の最初の週を指定します(オプション)。
FirstDayOfWeekに指定できる値
説明
vbUseSystemDayOfWeekシステムの設定に従います。
vbSunday日曜日を週の最初の日とします。
vbMonday月曜日を週の最初の日とします。
vbTuesday火曜日を週の最初の日とします。
vbWednesday水曜日を週の最初の日とします。
vbThursday木曜日を週の最初の日とします。
vbFriday金曜日を週の最初の日とします。
vbSaturday土曜日を週の最初の日とします。
FirstWeekOfYearに指定できる値
説明
vbUseSystemシステムの設定に従います。
vbFirstJan11月1日を年の最初の週とします。
vbFirstFourDays最初の4日間が含まれる週を年の最初の週とします。
vbFirstFullWeek最初の完全な週を年の最初の週とします。

戻り値について

この関数の戻り値は、バリアント型(Variant)ですが、内部処理形式としてはStringが用いられます。これは、関数が文字列としての出力を生成するためです。

Format関数とTEXT関数の違い

Excelのワークシート関数にもTEXT関数がありますが、Format関数はそれとほぼ同様の機能を持っています。ただし、書式指定文字が一部異なる場合がありますので注意が必要です。

書式指定の種類とその詳細

日付/時刻表示書式

日付や時刻を表示する際に用いる書式です。

  • “yyyy年mm月dd日”: 年、月、日をこの形式で表示します。
  • “HH:MM:SS”: 時、分、秒をこの形式で表示します。

数値表示書式

数値を表示する際に用いる書式です。

  • “#,##0”: カンマで区切って表示します。
  • “0.00%”: パーセンテージで表示します。

文字列表示書式

文字列を表示する際に用いる書式です。

  • “@”: 文字列そのものを表示します。
  • “&&&”: アンパサンドを表示します。

Format関数の使用例とその解説

使用例1:日付の書式変換

日付データを”yyyy年mm月dd日”の形式に変換する例です。

MsgBox Format(Date, "yyyy年mm月dd日")

使用例2:数値の書式変換

数値をカンマ区切りと小数点以下2桁で表示する例です。

MsgBox Format(12345.678, "#,##0.00")

使用例3:文字列の書式変換

文字列をそのまま表示する例です。

MsgBox Format("abc", "@@@")

使用例4:パーセンテージ表示

数値をパーセンテージで表示する例です。

MsgBox Format(0.85, "0.00%")

使用例5:週の最初の日を指定

週の最初の日を指定して日付を表示する例です。

MsgBox Format(Date, "dddd", vbSunday)

Format関数で使用可能な書式指定文字一覧

以下の表は、Format関数で使用可能な書式指定文字とその説明を示しています。

日付/時刻表示書式

書式指定文字説明
yyyy年を4桁で表示します。例えば、2023年は”2023″と表示されます。
yy年の下2桁を表示します。例えば、2023年は”23″と表示されます。
mmmm月の名前をフルネームで表示します。例:”January”、”February”など。
mmm月の名前を3文字の短縮形で表示します。例:”Jan”、”Feb”など。
mm月を2桁の数字で表示します。1月は”01″、11月は”11″と表示されます。
m月を1桁または2桁の数字で表示します。1月は”1″、11月は”11″と表示されます。
dddd曜日をフルネームで表示します。例:”Sunday”、”Monday”など。
ddd曜日を3文字の短縮形で表示します。例:”Sun”、”Mon”など。
dd日を2桁の数字で表示します。例:”01″、”31″など。
d日を1桁または2桁の数字で表示します。例:”1″、”31″など。
hh24時間制の時を2桁で表示します。
h24時間制の時を1桁または2桁で表示します。
nn分を2桁で表示します。
n分を1桁または2桁で表示します。
ss秒を2桁で表示します。
s秒を1桁または2桁で表示します。
AM/PM12時間制で午前または午後を大文字で表示します。
am/pm12時間制で午前または午後を小文字で表示します。

数値表示書式

書式指定文字説明
0数字がない場合も0を表示します。例:”0012″
#数字がある場合のみ表示します。0は表示されません。
.小数点を表示します。
,3桁ごとにカンマを挿入します。例:”1,000″
%数値を100倍してパーセンテージとして表示します。
E+指数形式で正の指数を表示します。
E-指数形式で負の指数を表示します。

文字列表示書式

書式指定文字説明
@文字列そのものを表示します。
&アンパサンド(&)を表示します。
<文字列を全て小文字に変換します。
>文字列を全て大文字に変換します。

よくある間違いとその対処法

Format関数で書式を整えた後、そのままセルに値を入れると、セルの表示形式が上書きされてしまいます。そのため、セルに値を入れる前に、セルの表示形式を適切に設定することが重要です。

関連動画

まとめ

Format関数は、VBAで頻繁に使用される便利な関数です。日付や数値、文字列など、様々なデータ型に対して柔軟に書式を適用することができます。この記事で紹介した基本的な使い方や応用例を参考に、是非ともこの関数をマスターしてください。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次