アプリ版:「スタンプのみでお礼する」機能のリリースについて

日付の表示形式で、gee.mm.dd;@とかgggee."年"mm"月"dd"日";@という表示の、セミコロンの後の@の意味がわかりません。@マークは文字列ではと思ったのですが、この場合は、@マークがある場合とない場合でどう違うのでしょうか?教えてください。

A 回答 (4件)

実質的に変わらないと思います。

    • good
    • 0

日付範囲外の、カレンダーではありえない、数字を/で区切って入力し(例2005/13/35)てみて、その場合、文字列にそのまま表示する(X)のかと思ってやってみた。

確かに文字列にはなる。
しかし、ない場合も文字列表示になったので、入れても入れなくても変わらなかった。
WEBをざっと検索したが、解説した例は見つからなかった。
本やWEBやOKWAVEの質問でも;@つきは見たことがない。
上記(x)が正しいのか自信はないですが、実用上は忘れてよいのではないでしょうか。
;は場合わけ、@は文字列表示の意味でしょうが。
この辺に詳しそうな回答者Mさん(最近ご回答を見ないが)など
他のご回答を待ちます。
    • good
    • 0
この回答へのお礼

検索までしてくださったようで本当にありがとうございます。私も色々調べたのですが、いまいち意味がわからずにいました。ご親切にありがとうございました。

お礼日時:2005/12/24 16:41

こんにちは。



>この場合は、@マークがある場合とない場合でどう違うのでしょうか?

ユーザー定義の表示形式の場合、
正の値、負の値、ゼロの値、文字列で異なる表示形式を設定することができ、
その区切りが「;」セミコロンなのです。

例に挙げていただいたgee.mm.dd;@とかgggee."年"mm"月"dd"日";@の場合、
@の前が;(セミコロン)なので、@は質問者のおっしゃるとおり文字列なので、
文字列以外と判断される数字類を入れると、数値→シリアル値と変換され、
例えば12-24と入力すると(日本語入力でも)、
gee.mm.dd;@の表示形式の場合  H17.12.24
gggee."年"mm"月"dd"日";@の場合 平成17.年12月24日 と表示されます
(gggee."年"mm"月"dd"日"は、ggge"年"mm"月"dd"日"が常識的な表記なのですが「.」(ピリオド)が入るとそのままピリオドが表示されます)。
日付と関係ない1という数値を入力しても、シリアル値と認識され、
シリアル値と表示形式で 前者はM33.01.01 後者は明治33年01月01日
質問者が理解しているとおり、@(アットマーク)は文字列なので、
1年 と入力すると、どちらの場合でも 1年 と表示されます。

質問の例では、どういう意図で誰かが作成したのかわからないのですが、
gee.mm.dd;[赤]@ という表示形式にすれば、文字列が赤文字で表示されますし、
[青]ggge"年"mm"月"dd"日";@ という表示形式にすれば、日付と判断された値が青文字で表示されます。
色は[白][黄][赤][紫][緑][紫][青][黒]の8色が指定できます。

なお、例のように正の値、負の値、ゼロの値、文字列 というように4種類定義されていない場合
(今回のような、正の値・負の値・ゼロの値をひっくるめた数値としての日付;文字列)、
どう判断し、優先されるのかは、試行錯誤している状態です。

長くなりましたが、参考になれば幸いです。
    • good
    • 0
この回答へのお礼

本当にありがとうございました。とても参考になりました。

お礼日時:2005/12/24 16:44

入力値が文字列と判定された場合に、文字列用に定義された書式が使われます。

@は入力した文字列に特定の文字列を付加して表示するときの位置を示すので、特定文字の必要が無い場合は、@有りと@無しでは見た目の違いはありませんね。
ggge"年"m"月"d"日";@"←へんだよ"
という書式を定義してみました。
入力した値が暦日として正しい場合は書式「平成○○年○○月○○日」のように、不正の場合は書式「○○←へんだよ」と表示させる場合です。
@が無いと、"←へんだよ"の文字が出ませんでした。以下のような結果になりました。

入力値 @無しの場合 @有りのとき
1/32  1/32      1/32←へんだよ
    • good
    • 0
この回答へのお礼

実際やってみまして、意味がわかりました。ご親切にありがとうございました。

お礼日時:2005/12/24 16:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!