電子書籍の厳選無料作品が豊富!

エクセル2002で、セルの書式設定→ユーザー定義で文字を入力する際に、"赤"などと""で囲むのはなぜなのでしょうか?これで囲まなくてもちゃんと表示されますよね?例えばyyyy年m月d日と入力すれば、ちゃんと2007年8月3日と表示されますが、解説書などを読むとyyyy"年"m"月"d"日"などと書いてあります。なぜなのでしょうか?

A 回答 (3件)

ユーザー定義で指定するフォーマットは文字を使って指定します。


定義文字とは違う場合はそのまま表示されますが、定義文字の場合は任意の表示になります。

フォーマット指定の文字と任意の文字を区別するために文字を””でくくります。

"(y/m/d)"yyyy/m/d では、””の括りを文字列として認識されますが、(y/m/d)yyyy/m/d とすると (yy/m/d)yyyy/m/d に自動修正されて、意図した表示と違ってしまいます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2008/04/08 21:53

> yyyy年m月d日と入力すれば、ちゃんと2007年8月3日と表示


されません。いつもの余計なおせっかい機能が自分の知らない文字を
yyyy"年"m"月"d"日"と引用符で囲っています。もう一度書式設定を
開いてみれば判ります。

CSVで明らかに文字列なものを引用符で囲む習慣はなかった。なんでも
囲むのは、管理工学研究所あたりが判断を面倒くさがって始めた風習。
だから別名K3形式。普通のCSVで引用符をつけるのは数字と数値の区別
を必要とする場合や文字列にカンマそのものを含む場合のみ。

「ここは意味を解釈せずに無条件で表示する文字列だよ」という意味で
引用符で囲むのはアリだけど、煩雑で面倒くさい。だから言語によっては
「これは機能文字に見えるけど今回に限り無視してね」というときだけ
エスケープさせるって手口を使う。こっちの文化の人がExcelを設計して
いたら、いちいち引用符を書かずに済んだかも。
    • good
    • 0
この回答へのお礼

もう一度書式設定を開いてみたら""が付いてました。
私の早とちりだったようです。
ありがとうございました。

お礼日時:2008/04/08 21:52

基本的にVBなど諸言語(注)も含め、文字列は””(たまに’’)で囲む伝統があリます。

(注)FORTRAN,COBOL言語の昔から文字リテラルは””で囲む。
http://www16.plala.or.jp/hiyokogumi/3/310.html#a1 参考
その伝統を引いたかどうかはっきりしないが、だから””で囲むほうが、本則(標準)なんだが、エクセル等側で、なくても文字列と解釈してくれるものは、なくても済んでいるだけと考えればよい
と思う。
CSVファイルのデータなども、123,"東京","234"などが、原初的形だったと思うが、今では 123,東京,"234"が当たり前になっているように思う。
ただ日付書式の例だと、dなど特別の意味のある文字を、文字列dの意味で使うときは、””は省略できません。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2008/04/08 21:54

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