C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

エクセルのスタイルフォーマットについて

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■90096 / inTopicNo.1)  エクセルのスタイルフォーマットについて
  
□投稿者/ 美夕 (1回)-(2019/02/08(Fri) 12:55:58)

分類:[.NET 全般] 

エクセルファイルを読み込んでセルのスタイルのフォーマットに入っている文字列をみると
以下のような文字列が入っていました。
これらの文字列はどうやって解析したらよろしいのでしょうか?

"d\"日\""
"0.0_ "
"0.0;[Red]0.0"
"@"
"0.00000_ "
引用返信 編集キー/
■90098 / inTopicNo.2)  Re[1]: エクセルのスタイルフォーマットについて
□投稿者/ はまぐり (68回)-(2019/02/08(Fri) 15:33:18)
No90096 (美夕 さん) に返信

えっと解析して何をしようとしてるのでしょうか

フォーマットをとある値に適用したいとか
とあるフォーマットを抜き出したいとか
0の数を数えたいとか
などなど

解析して何をするのかわからないと
どう解析すればよいかもわからないかと
引用返信 編集キー/
■90159 / inTopicNo.3)  Re[2]: エクセルのスタイルフォーマットについて
□投稿者/ 美夕 (2回)-(2019/02/13(Wed) 09:32:03)
No90098 (はまぐり さん) に返信

すみません。
書式(フォーマット)形式のようなものが存在するのかどうかです。

とりあえず知りたいのは
"0.0_ "
正数、負数関係なく表示は"0.0"で表示してるっぽい

"0.0;[Red]0.0"
正数は0.0で [Red]0.0 が負数の場合に 赤色で0.0 表示するのかな?

"d\"日\""
"@"
は全く分かりません。
引用返信 編集キー/
■90160 / inTopicNo.4)  Re[3]: エクセルのスタイルフォーマットについて
□投稿者/ Jitta (434回)-(2019/02/13(Wed) 09:48:24)
とりあえず、ここ
https://support.office.com/ja-jp/article/表示形式のカスタマイズに関するガイドラインを確認する-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5

選択してアドレス欄に貼り付けてください。
引用返信 編集キー/
■90161 / inTopicNo.5)  Re[3]: エクセルのスタイルフォーマットについて
□投稿者/ 魔界の仮面弁士 (2047回)-(2019/02/13(Wed) 10:12:40)
No90096 (美夕 さん) に返信
> エクセルファイルを読み込んでセルのスタイルのフォーマットに入っている文字列をみると

VBA の NumberFormat / NumberFormatLocal プロパティから得られる表現は、
Excel の書式設定画面から見える表現とは、必ずしも一致しないので注意。



No90159 (美夕 さん) に返信
> とりあえず知りたいのは
> "0.0_ "
> 正数、負数関係なく表示は"0.0"で表示してるっぽい

『0.0』と『0.0_ 』は別の書式です。
最後の "_ " は、末尾に一個の空白がつくことを意味します。


> "0.0;[Red]0.0"
> 正数は0.0で [Red]0.0 が負数の場合に 赤色で0.0 表示するのかな?

そうですね。

『00.0;[赤]-0/0;"ぜろ";"文字列の"@"だった"』だった場合には、
 3.5 → "03.5"
 -1.5 → "-3/2"
 0 → "ぜろ"
 xyz → "文字列のxyzだった"
のようになりますし、『[Blue][>3000]#,0.0;[Green][>2000]#,0.00;[Red]#,.000』だと
 3456 → 青文字 "3,456.0"
 2345 → 緑文字 "2,345.00"
 1234 → 赤文字 "1,234.000"
となります。


> "d\"日\""

本日(2019/02/13)の日付がセルに記載されていた場合、
上記の書式は "13日" という文字列を返します。

最後の『\"日\"』は、固定値で "日"という文字を表示するためのもの。
先頭の『d』書式は、セルが日付値だった場合に、日付の day 部を 1〜31 の範囲で返します。
※ただし 1900年1月1日の前日だった場合のみ、例外的に「0」を返します。


ちなみに『dddd』が曜日、『ddd』は曜日の短縮名です。
言語ロケールID を伴った表現もできます。

『[$-411]ddd』なら 今日は "水"
『[$-411]dddd』なら 今日は "水曜日"
『[$-409]ddd』なら 今日は "Wed"
『[$-409]dddd』なら 今日は "Wednesday"
『[$-1004]dddd』なら 今日は "星期三"



> "@"

『@』書式は、セルの値を文字列としてそのまま表示することを意味します。

たとえば『"[Color10]*>@"とすると、
 xyz → 緑文字の ">>>>>>xyz"
となります。

『*』は繰り返し記号で、セル幅一杯になるまで後続文字を付与します。


その他にも、
『[DBNum1]0』だと 12345678 → "一二三四五六七八"
『[DBNum2]0』だと 12345678 → "壱弐参四伍六七八"
『[DBNum1]General』だと 12345678 → "千二百三十四万五千六百七十八"
『[DBNum2]General』だと 12345678 → "壱阡弐百参拾四萬伍阡六百七拾八"
『[DBNum3][$-411]0』だと 12345678 → "12345678"
『[DBNum3][$-411]General』だと 12345678 → "千2百3十4万5千6百7十8"
とか、他にも色々。

https://www.waenavi.com/entry/20180820/1534775281
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ