ユーザー定義関数を使ってセルに入力されている数式を別のセルに表示させる方法を、ご紹介しました。
似たようなことですが、
セルに設定されている表示形式を別のセルに表示させたい
という要望をセルの書式設定の重要性に気づいた方からいただくことがあります。
また、セルの情報を取得できるCELL関数を知った方からは、
CELL関数の第1引数に「"format"」を指定すると、第2引数で指定されたセルの表示形式が調べられるみたいですが、ユーザー定義書式を表示させるにはどうすればいいのでしょう?
というご質問をいただくことがあります。
残念ながらCELL関数で取得できる書式の情報は、「D4」「C0-」というコードなので、このコードが何を表しているのかを調べなければなりません。
[セルの書式設定]ダイアログ−[表示形式]タブの[分類]欄で「ユーザー定義」を選択したときと同じ情報を取得するには、数式を表示させるユーザー定義関数と非常によく似たコードをVBAで書いてしまう方が簡単です。
Function ViewFormat(objCell As Range) As String
ViewFormat = objCell.NumberFormatLocal
End Function上記のコードをVBE(Visual Basic Editor)を起動して標準モジュールに貼り付ければ、通常のワークシート関数と同様に使えます。
例えば、A1セルに「#,##0.0;[赤]#,##0.0」という書式が設定されているときに、B1セルに「=ViewFormat(A1)」とすれば、B1セルには「#,##0.0;[赤]#,##0.0」と表示されます。
Excelで業務アプリを作ったようなときに、セルに設定されている表示形式を印刷しておきたいということもあるでしょう。そんなときなどに使ってみてください。
- Newer:Wingdings 3フォントによる絵文字一覧
- Older:ルビを文字の下にふる
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » ユーザー定義書式を表示させたい