- ベストアンサー
エクセル ユーザー定義で""で文字を囲むのはなぜ?
エクセル2002で、セルの書式設定→ユーザー定義で文字を入力する際に、"赤"などと""で囲むのはなぜなのでしょうか?これで囲まなくてもちゃんと表示されますよね?例えばyyyy年m月d日と入力すれば、ちゃんと2007年8月3日と表示されますが、解説書などを読むとyyyy"年"m"月"d"日"などと書いてあります。なぜなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ユーザー定義で指定するフォーマットは文字を使って指定します。 定義文字とは違う場合はそのまま表示されますが、定義文字の場合は任意の表示になります。 フォーマット指定の文字と任意の文字を区別するために文字を””でくくります。 "(y/m/d)"yyyy/m/d では、””の括りを文字列として認識されますが、(y/m/d)yyyy/m/d とすると (yy/m/d)yyyy/m/d に自動修正されて、意図した表示と違ってしまいます。
その他の回答 (2)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
> yyyy年m月d日と入力すれば、ちゃんと2007年8月3日と表示 されません。いつもの余計なおせっかい機能が自分の知らない文字を yyyy"年"m"月"d"日"と引用符で囲っています。もう一度書式設定を 開いてみれば判ります。 CSVで明らかに文字列なものを引用符で囲む習慣はなかった。なんでも 囲むのは、管理工学研究所あたりが判断を面倒くさがって始めた風習。 だから別名K3形式。普通のCSVで引用符をつけるのは数字と数値の区別 を必要とする場合や文字列にカンマそのものを含む場合のみ。 「ここは意味を解釈せずに無条件で表示する文字列だよ」という意味で 引用符で囲むのはアリだけど、煩雑で面倒くさい。だから言語によっては 「これは機能文字に見えるけど今回に限り無視してね」というときだけ エスケープさせるって手口を使う。こっちの文化の人がExcelを設計して いたら、いちいち引用符を書かずに済んだかも。
お礼
もう一度書式設定を開いてみたら""が付いてました。 私の早とちりだったようです。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17070)
基本的にVBなど諸言語(注)も含め、文字列は””(たまに’’)で囲む伝統があリます。(注)FORTRAN,COBOL言語の昔から文字リテラルは””で囲む。 http://www16.plala.or.jp/hiyokogumi/3/310.html#a1 参考 その伝統を引いたかどうかはっきりしないが、だから””で囲むほうが、本則(標準)なんだが、エクセル等側で、なくても文字列と解釈してくれるものは、なくても済んでいるだけと考えればよい と思う。 CSVファイルのデータなども、123,"東京","234"などが、原初的形だったと思うが、今では 123,東京,"234"が当たり前になっているように思う。 ただ日付書式の例だと、dなど特別の意味のある文字を、文字列dの意味で使うときは、””は省略できません。
お礼
ありがとうございました。
お礼
ありがとうございました。