みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル ユーザー定義で""で文字を囲むのはなぜ?

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

投稿日時 - 2008-04-05 12:57:25

QNo.3923928

困ってます

質問者が選んだベストアンサー

ユーザー定義で指定するフォーマットは文字を使って指定します。
定義文字とは違う場合はそのまま表示されますが、定義文字の場合は任意の表示になります。

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

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

投稿日時 - 2008-04-05 13:19:33

お礼

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

投稿日時 - 2008-04-08 21:53:19

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

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

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

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

投稿日時 - 2008-04-05 15:37:29

お礼

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

投稿日時 - 2008-04-08 21:52:03

ANo.2

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

投稿日時 - 2008-04-05 13:45:01

お礼

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

投稿日時 - 2008-04-08 21:54:25

あなたにオススメの質問