[[20031125085936]] 『表示形式の書式記号「!」について』(KAMIYA) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表示形式の書式記号「!」について』(KAMIYA)

 こんにちは 最近お邪魔しておりますKAMIYAです。
 今回は相談する側です(笑)。

 これは以前から疑問に思っていたことなのですが、
 エクセルのヘルプで書式記号の項目には
 『スペース、$、-、+、/、(、)、:、!、^、&、`、'、~、{、}、=、<、および > 
 を入力する場合、二重引用符で囲む必要はありません。』
 のように書いてあり、「!」もダブルクォーテーションで囲まなくても書式設定内に
 記述すれば表示できるようなニュアンスです。
 しかし、

 (e3g)表示形式のユーザー定義 
http://www.excel.studio-kazu.jp/lib/e3g/e3g.html
 で紹介されている例を見ても、
 「!」に続く一字を記入箇所に強制表示する働きの書式記号のようですし、
 また実際にダブルクォーテーションなしでは「!」を表示することはかないません。
 これは、ヘルプファイルの記述の間違いと見てよいのでしょうか。
 それとも私の解釈の間違いがあるのでしょうか。

 皆様のご意見を伺いたいのでお願いいたします。

 『…を入力する場合…』であって、”…を表示するためには”ではないのではないのですか?
 これらの記号を、それぞれの用途に応じて使うために入力するに際しては…ということで、
 表現は妥当だと思いますが… (通りすがりの者)

 真祖すがやんと同じく(おぃ)

 "特殊文字を入力する場合は、二重引用符を付ける必要はありません"

 ということだと思います。
 (ramrun)お昼〜

 Microsoft Office Online 文字列やスペースの書式
http://office.microsoft.com/assistance/preview.aspx?AssetID=HP052078921041&CTT=98 現在参照不可

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

 種類(T)への入力
 m/d$-+/():!^&`'~{}=<>

 セル表示
 1/1$-+/():^&`'~{}=<> 

 確定後種類(T)を確認すると
 m/d$-+/():^&`'~"{""}"=<>

 このように

 ダブルクォーテーションなしで表示できるもの、
 確定後ダブルクォーテーションが勝手に付加されるもの、
 そして、「!」のように表示からも書式記号からも消えてしまうもの

 が混在して書かれているので、私としては混乱してしまっていたわけです。

 >それぞれの用途に応じて使うために入力するに際しては
 ・・・そう言われるとそうなのですが、
 それなら「!」の用法もはっきりヘルプに書いてくれればいいじゃないかと(笑)。

 >"特殊文字を入力する場合は、二重引用符を付ける必要はありません"

 _(アンダーバー)、*などの書式記号はなぜ同列に扱っていないのか、
 ヘルプで「文字を追加する」項目に何故「!」が記載されているのか、
 という新たな 疑問も生じてくるわけです。

 そもそも、「!」の用法はこのサイトで始めて知ったのですが、
 私の中ではそれまで「ヘルプの書いてある内容は間違っているのでは?」
 だったわけです。
 そういうものだと思っておけばいいんでしょうけれども。
 (KAMIYA)

 「!」がヘルプに書いてある通りに表示できない!と泣きつかれたのが
 事の起こりだったんですが、外野から
 「以前のExcelでは表示できて、仕様が変わったけどヘルプだけそのままなんじゃない?」
 という声もあり、「そういうものだ」と思うようにします。
 私の中ではまだしっくりこないのですが、変な相談にお付き合いいただいた、
 通りすがりの者様、ramrun様、ありがとうございました。
 (KAMIYA)

 (長いし役に立たないので以下興味のない人は読む必要ないです・・・)
 実はその後も気になったので検証してみました。

 気になったのはヘルプの下記の表現での「\」及び「!」。

 文字を追加する
 「文字列と数値の両方をセルに表示するには、文字列をダブル クォーテーション (" ")
 で囲むか、表示形式で円記号 (\) に続けて 1 文字を指定します。」
 「スペース、$、-、+、/、(、)、:、!、^、&、`(アクセント記号)、
 ' (クォーテーション) 、~、{、}、=、<、および > を入力する場合、
 ダブル クォーテーションを付ける必要はありません。」

【検証結果】

 表示形式ユーザー定義での設定
 \#,##0
 \\#,##0
 !\#,##0
 \!#,##0

 関数
 =TEXT(A1,"\#,##0")
 =TEXT(A1,"\\#,##0")
 =TEXT(A1,"!\#,##0")
 =TEXT(A1,"\!#,##0")

 表示形式、関数とも下記のとおりの結果です。
 \12,345
 \\12,345
 \12,345
 \#,12345

 「表示形式で円記号 (\) に続けて 1 文字を指定」しても「\」に続く
 1文字は表示されず、「\」そのものが表示されます。
 替わりに「!」がその機能を代替しているように見えます。
 やはりどうもヘルプのかき方とかみ合いません。

 一方、VBAでは同様に表示形式を設定してみると、
 (これは先日のご相談での検証時に発見しましたが)

 Private Sub TextBox5_Change()
 TextBox1.Text = Format(TextBox5.Text, "\#,###")
 TextBox2.Text = Format(TextBox5.Text, "\\#,##0")
 TextBox3.Text = Format(TextBox5.Text, "!\#,##0")
 TextBox4.Text = Format(TextBox5.Text, "\!#,##0")
 End Sub

 各テキストボックスに返る値は次のようです。
 #,12345
 \12,345
 #,##0
 !12,345

 「表示形式で円記号 (\) に続けて 1 文字を指定」すればそのようになります。
 逆に、この場合の「!」はセルへの表示形式でのような働きはまったくしておりません。
 がいろいろ試してみると

 Private Sub TextBox5_Change()
 TextBox1.Text = Format(TextBox5.Text, "#!#!#!#!#!")
 End Sub

 で「123456」は「12!3!4!5!6!」
 これはなんとなくエクセルのヘルプどおり。

 Private Sub TextBox5_Change()
 TextBox1.Text = Format(TextBox5.Text, "!&!&!&!&!&")
 End Sub

 で「123456」は「23456」となり
 入力された文字列の末尾のほうから「!&」の数だけ文字列を拾ってきます。
 (文字列を拾ってくるのは「&」の働きのようですが・・・)

 【結論】
 どうもエクセルのヘルプの記述がVBA Format関数での場合とエクセルでの場合が
 ごっちゃになっているような感じです。
 逆に、エクセル関数のTEXT()とVBAのFormat関数はよく似たもんだろう、と
 思っていたのですがかなり表示の仕方に差があるようです。
 以上、「エクセルの無駄知識」でした。
 (KAMIYA)

 えらく前の話を蒸し返すようですが、
「文字列と数値の両方をセルに表示するには、文字列をダブル クォーテーション (" ")
 で囲むか、表示形式で円記号 (\) に続けて 1 文字を指定します。」
この一文がみょうに気になって、暇な時にWebに情報が落ちてないか探してました。
 
結果、納得できるものを見つけました。
http://jp5.txt-nifty.com/exhy0300.htm
上記サイトに以下の記述がありました。
<<<<引用>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
b) Excelのヘルプの間違いに注意
 英語版バックスラッシュ(半角の\)と日本語版\記号のASCIIコードは同じ。
 ASCIIコード番号は、1011100(2進数) 92(10進数) 5C(16進数)になる。
 ASCIIコードの詳細は、検索エンジンGoogle等で検索すれば、適当なものが見つかるはづ。
 この英語版バックスラッシュ(半角の\)と日本語版円記号\が同じになることから、単純
にヘルプを和訳すると、バックスラッシュが円記号\になる。
 しかし、日本の通貨記号が\であり、表示形式(記号に続く1文字表示)に\を利用するとバ
ッティングしてしまう。
 そこで日本語版Excelでは、円記号\の変わりにエクスクラメーションマーク (!)を使う
仕様となっている。
 この仕様を考えずに翻訳されたExcelのヘルプには、間違いがある。
 該当部分の日本語版Excel97/2000のExcelのヘルプ(VBのヘルプでない)の該当する部分は、
基本操作を対象にしているので、「円記号 (\)」と掲載されているのは間違い。
「エクスクラメーション (!)」が正解。
<<<<引用終り>>>>>>>>>>>>>>>>>>>>>>>>>>>>
(かなりしつこいKAMIYA)


 お〜 さすがKAMIYAさん。
 粉飾の魔術師、妥協しませんね(笑)。

 ! を表示したいとき、\! は間違いで、 "!" としなくても !! でよいということですね。
 (ramrun)

 リンク先アドレス変更(みやほりん)(-_∂)b 2009/10/27 11:23

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.