• ベストアンサー

【Excel2000】桁区切りのカンマを他の記号にする事はできますか?

金額の表示なのですが、3桁ごとの桁区切りをカンマではなく、「|」(半角の縦棒線)を使用したいのです。 色々考えてみたのですが、どうしても出来ません。 方法をご存知の方がいらっしゃいましたら、お教えいただけないでしょうか、何卒よろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.7

こんにちは。maruru01です。 まず、そのセル自体の表示を設定する方法です。 対象のセルの表示形式をユーザー定義で、 「[<1000]##0;[<1000000]#|###;#|###|###」 とします。 これだと、そのセルに入る値の桁数が、0~9桁までなら対応出来ます。 (つまり、10桁以上には対応しません。またマイナスの値にも対応しません。) 次に、別のセルに文字列として表示させる方法です。 (No.2の方と同じ考え方です。) A1に金額を入力する場合に、表示するセルに、 =SUBSTITUTE(TEXT(A1,"#,##0"),",","|") と入力します。 これなら、何桁でも(マイナスでも)きちんと表示されます。

kohituzi
質問者

お礼

maruru01さん、 早速のアドバイスをありがとうございました。 試してみましたところ、2つの方法とも意図した通りの結果が得られました! まさしくこの様にしたかったので、嬉しいです。 今回は、桁が10を越すケースもありえるため、式の方を使わせていただくことになりそうです。 9桁以内だったら表示形式が利用できて理想通りだったのに…残念です。 けれど、表示形式でも出来ると分かり、勉強になりました。 本当にありがとうございました。

その他の回答 (10)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.11

KenKen_SPさまへ これは、オフ・トピックになってしまうかもしれませんが、 >EXCEL2000 から新しく追加されたプロパティとなっていました(参考URL) > http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnexcl2k/xlWhtsNw.asp [Microsoft Excel 2000 開発者向け新機能] Applicationクラスのメンバの中にありますか? それは、QueryTable クラスのメンバのTextFileThousandsSeparator プロパティのことではないでしょうか? ヘルプより テキスト ファイルをクエリ テーブルにインポートするときに、Excel で使用する桁区切り記号を設定します。 使用例: Worksheets("Sheet1").QueryTables(1) _ .TextFileThousandsSeparator = "." こちらは、VBA辞典(2002)にも出てきます。 何かの間違いではないでしょうか? 今のところ、私の今のレベルでは、下位バージョンに、Shell.Application から、コントロールパネルの地域を開き、マニュアルで変更するぐらいしか、思いつきませんでしたが、この変更する方法は、下位バージョンでも必ずあると思います。 ただ、私は、この元のご質問に関して、とても、1000単位のセパレータとして「|」では、数字と見まちがうだけでなく、出力として出てきてしまうので、失礼ですが、実用にはならないような気がしています。私が、ここで提出した#5のVBAのコードのアイデアは、実際に使っているものと同じタイプのものです。本当に実用的にさせるためには、もう少し、別な部分に手を加える必要がありますが。

kohituzi
質問者

お礼

Wendy02さま、 こちらのお礼欄をお借りして、最後に皆様にお礼をさせていただきたく、どうぞ、お許しください。 今回アドバイスを下さいました皆様、 私のつたない質問にご丁寧にまた詳細にご説明くださり、大変感謝しております。 同時にとても勉強にそして参考になりました。 分からない事もありますので、勉強しようと思います。 また、Wendy02さまはじめ、 ご指摘を頂戴した通り、縦線では確かに見間違いはまぬかれないと思います。 (出力はして良いのですが) 一度進言してみるつもりです。 折角方法が分かりましたので、使いたい気持ちはかなりありますが、 ミスを誘発しては元も子もありません(汗) 最後に、 本来なら皆様にポイントをお渡ししたいのに、ご回答を選ばなければならず残念ですが、 本当に色々と勉強になる事ばかりで感謝の気持ちで締めくくらせて頂きたく思います。 皆様、本当にありがとうございました。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.10

Wendy02さま EXCEL2002 の VBA ヘルプに ThousandsSeparator プロパティが記載され、動作することを確認しております。MSDN ライブラリによると EXCEL2000 から新しく追加されたプロパティとなっていました(参考URL)。したがって、 「EXCEL2000以前のバージョンでは#7の方法は使えない」 ということになりますね。アドバイスありがとうございました。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnexcl2k/xlWhtsNw.asp
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.9

KenKen_SP様へ > .ThousandsSeparator = "|" 今、Excel VBA辞典(2002)でプロパティを調べてみて、それがなかったので、MSDN を調べてみたら、それは、Excel2003 のVBAのプロパティのようですね。ちょっと限定されてちゃうようです。たぶん、いつものように、下位バージョンでも同じ方法はあるでしょうけれど……。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaxl11/html/xlproThousandsSeparator_HV03081083.asp
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.8

>...この表が完成した際に利用するのがあまりExcelに詳しい人ではないため、 >多分桁数に応じて「|###」を変えるという事が無理なのです。 では、マクロは使えないかも知れませんね。ただ、、 >縦棒線にしたいのはこのファイルだけで、他のファイルではカンマで対応したい... この点については、以下のマクロを ThisWorkBook に貼り付けることで実現できますね。マクロの使用も検討してみて下さい。 Private Sub Workbook_Activate()   With Application     .ThousandsSeparator = "|"     .UseSystemSeparators = False   End With End Sub Private Sub Workbook_Deactivate()   With Application     .ThousandsSeparator = ","     .UseSystemSeparators = True   End With End Sub

kohituzi
質問者

お礼

KenKen_SPさん、 再度アドバイスくださいまして、ありがとうございます。 試してみたのですが、 「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」 と出てしまいました。 私の利用しているバージョンでは使用できないということでしょうか…(Excel2000なのですが) 今回は残念ですが、ご丁寧なアドバイス心から感謝しております。 本当にありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

時々、見かけるご質問なので、ご質問者はご利用になられないかもしれませんが、出しておきます。 これは、何度か作っています。まだ、全てのフォントサイズで実施したわけではないのですが、等幅11pt と12ptでは有効のようです。コードに数字を入れれば、微調整も利きます。12pt以降の定数が分かりません。下は、9ptまでです。 これは、桁線を、オートシェイプの線で引くマクロです。 標準で、枠線とほぼ同じ色になっています。範囲と色の数字を入れれば、ご自由に変えられます。 なお、これは標準モジュールに登録することを想定しています。 '---------------------------------------------------------- Private Const letterWidth12 As Double = 7.92 Private Const letterWidth11 As Double = 7.92 Private Const letterwidth10 As Double = 6.92 Private Const letterwidth9 As Double = 5.92 Sub LocationLines() '桁線を引くマクロ(ただし、等幅フォントに限る) Dim a&, b&, c&, xw, y1&, y2&, l As Shape Dim Rng As Range '※ユーザ設定 '------------------------ Set Rng = Range("B2:B12") '桁線を引く場所の設定 '------------------------ If Rng.Columns.Count > 1 Then MsgBox "1列で設定してください", 16: Exit Sub With Rng y1 = .Cells(1).Top '上 y2 = .Cells(Rng.Count).Offset(1).Top '下 '線があれば、消す For Each l In ActiveSheet.Shapes  If l.Type = msoLine Then   l.Cut  End If Next l 'デフォルトのセル幅を実際に測る a = ActiveSheet.Cells(1, 255).Left b = ActiveSheet.Cells(1, 255).Offset(, 1).Left '1文字辺りの幅を計算 c = (b - a) / letterWidth11 '左から縦線を引く x3 = .Cells(1).Offset(, 1).Left - c * 3 + 1 '+/-調整 (+左,-右) x2 = .Cells(1).Offset(, 1).Left - Int(c * 6) + 3 '+/-調整 If .Cells(1).ColumnWidth > ActiveSheet.StandardWidth Then  x1 = .Cells(1).Offset(, 1).Left - Int(c * 8) + 0 '+/-調整 End If For Each xw In Array(x3, x2, x1)  If xw > 0 Then   With ActiveSheet.Shapes.AddLine(xw, y1, xw, y2)   .Line.ForeColor.SchemeColor = 22   '黒(8),赤(10),青(12),水色(15),灰(22)   End With  End If Next xw End With Set Rng = Nothing End Sub '--------------------------------------

kohituzi
質問者

お礼

Wendy02 さん、 早速のアドバイスをありがとうございました。 試してみましたところ、なるほど、おっしゃる通り11・12pで線が引けました。 マクロの内容自体はちょっと私には難しくて正直よく分からないので、 内容が分かるスキルがあれば色々試してからお礼が出来たのですが、恐縮です。 こんなやり方もあるのですね、勉強してみます。 こちらのマクロですと、色々と使えそうな感じですので、是非覚えておきたいと思います。 ご丁寧な説明とアドバイスをありがとうございました。

  • dac203
  • ベストアンサー率43% (92/212)
回答No.5

「ツール」「オプション」「インターナショナル」で「システムの桁区切りを使用する」のチェックを外して、任意の記号を設定すればできると思います。 ただ全部表示が変わってしまうので、部分的に使用したい場合には向きませんですね。

kohituzi
質問者

お礼

dac203さん、 早速のアドバイスをありがとうございます。 確かにおっしゃる通り、他のファイルではカンマで対応したいのです。 しかしながら、今回教えていただいた点は知らない事でしたので、勉強になりました。 どのようになるのか、明日早速試してみたいと思います。 ありがとうございました。もし、他に何かお気づきの点がございましたらアドバイスいただけると幸いです。

  • koganeton
  • ベストアンサー率29% (30/101)
回答No.3

セルー書式で 表示形式をユーザ定義で 『#|##0』にすれば出来ました。 でも、見づらくないですか?

kohituzi
質問者

お礼

koganetonさん、 早速のアドバイスをありがとうございました。 実はこの方法、試してみているのですが、桁数に応じて数を「|###」を変えないと カンマ代わりに表記させるという事が出来なかったのです。(私のやり方が間違っているのでしょうか…) そして、実際にこの表が完成した際に使用するのがあまりExcelに詳しい人ではないので、 (そういう私も達者とはとても申せませんが…) それをやってもらう事が出来そうにないのです。本当にカンマの代わりみたいにして 縦棒線を表記させられないかなぁ…と思っておりまして…。 たしかに、おっしゃる通り見にくいし、数字の1と見間違えそうなんですよね(汗) もともと、数字を手書きしていた表があって、その元の表の桁区切りが縦線だったため、 今回Excelで作成するにあたって、それをそのまま再現しようとなったのだと思います。 もし、何かお気づきの点がございましたら、アドバイスいただけると幸いです。ありがとうございました。

  • tresbien
  • ベストアンサー率51% (51/99)
回答No.4

ツールメニューのオプションから インターナショナルタブに 「システムの桁切りを使用する」のチェックをはずし、桁区切りのボックスに「|」を入力する。

kohituzi
質問者

お礼

tresbienさん、 早速のアドバイスをありがとうございます。 実は、縦棒線にしたいのはこのファイルだけで、他のファイルではカンマで対応したいのです。 しかしながら、今回教えていただいた点は知らない事でしたので、勉強になりました。 ありがとうございました。もし、他に何かお気づきの点がございましたらアドバイスいただけると幸いです。

回答No.2

これでどうでしょう? A1に入った数値を、テキスト化して表示します。 =RIGHT(TEXT(A1,"###|###|###|###"),LOG(A1)+INT(LOG(A1)/3)+1) 文字として表示されますので、右寄せしておいてください。

kohituzi
質問者

お礼

shinkun0114さん 試してみましたら、意図した様に棒線を引くことが出来ました! まさしくこの様に引きたかったので、引くことが出来ると分かって勉強になりました。 本当にありがとうございました。

kohituzi
質問者

補足

shinkun0114さん、 早速のアドバイスありがとうございます。 今自宅で試す事が出来ないので、明日早速会社でチャレンジして、 ご報告させていただきたいと思います!

  • hakutyan
  • ベストアンサー率44% (23/52)
回答No.1

kohituziさんのご期待に沿えるかどうか分かりませんが、考えてみました。 セルの書式設定の表示形式で、ユーザー定義を選び、種類のとこに「#|###|###」と入力してOKへ。 なお、取り扱う桁数に応じて「|###」を増やしてくださいね。 参考までに。

kohituzi
質問者

お礼

hakutyanさん、 早速のアドバイスをありがとうございました。 実は1つ問題がありまして、この表が完成した際に利用するのがあまりExcelに詳しい人ではないため、 多分桁数に応じて「|###」を変えるという事が無理なのです。 それを変えることなく、まさにカンマの変わりに縦棒線で表記できないかと苦心しております。 もし、何かお気づきの点がございましたら、アドバイスいただけると幸いです。ありがとうございました。

関連するQ&A

  • カンマの区切りは4桁で

    カンマの区切りは4桁にして欲しいです。 絶対日本では4桁が良いに決まっています。 なのに、かたくなに3桁です。 4桁に慣例を換えられないでしょうか? そういう動きは無いでしょうか? 覚えれば済む、という、合理的でない考え方は、なし、でお願いします。

  • 西暦にはどうして桁区切りのカンマ(,)がつかない?

    ふと思ったのですが、金額や数値など、1000以上の数にはよく桁区切りのカンマがついていますが、どうして西暦にはついていないのでしょうか? 遠い将来、西暦2,497,328年とかなった時に初めて使われるのでしょうか?

  • Excel(mac)での桁区切り点が付けられない

    Excelは苦手で仕事でも遅れがちになってしまいますが、今特にこれらの2点に困っています。知っている方がいましたら教えてください。 (1)Excelで大量のデータに一括で桁区切りのカンマを付けようと思い、「セルの書式設定」→「表示形式」→「数値」→「桁区切りにチェック」(ツールバーの「桁区切り点」ボタン)を使用したのですがかかりません。がその後セルを一つずつダブルクリックするとカンマが表示されます。なぜこうしたことが起こるのでしょう?解決方法はありますか? (2)数値の上2桁の後ろに半角スペースを一括で入れたいのですが何か良い方法はあるでしょうか? どうぞよろしくお願いします。

  • Accessの桁区切りについて教えてください。

    アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。 プロパティの書式を通貨にすると¥マークがついてしまいます。 合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。 そのため、書式に『###,##0』としました。 できましたが、小数点以下が表示されません。 小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。 小数点の指定を自動から3桁表示に変えましたが、うまくいきません。 教えていただきたい内容としては、 ・金額の表示に桁区切りのカンマを付けたい。 ・でも¥マークは付けたくない。 ・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、  小数点以下がないものは小数点以下は表示させたくない(5,400)。 ぜひともアクセスを使いこなしている方、お教えください。

  • ワードに差し込んだエクセルデータの桁区切りについて

    ヴァージョンはワード2002です。 エクセルでのデータ内容は客先の会社名と金額、コード番号などです。 金額の欄には「253,000」というように桁区切りの「,」を表示させています。 書式は「通貨」です。 これをワードに差し込むと「,」が消えてしまい「253000」と入ってしまいます。 数字を文字列にさせてカンマをいれてやればカンマが入るのはわかるのですが、 エクセルでは金額欄が数式なので文字にさせるわけにはいきません。 調べたところによるとワードには桁区切り機能はないそうですが、知人に聞いたところ、「何も設定しなくても自然にカンマが入ったよ」というのです。 カンマを表示させる方法はありますか?

  • コンマ(カンマ?)は何故三桁で区切るのですか?

    金額表示をする際の「,」ですが、(例:\100,000,000) 何故三桁で区切るのでしょうか? また、正しくはコンマと読むのでしょうか、カンマと呼ぶのでしょうか? よろしくお願いします。

  • 3桁のカンマ区切り

    簿記に限らず、数字を3桁にカンマで区切って表示しますが、 私は数字がカンマで区切られていれても下から一、十、百、千、万・・・・ と位をとっていかないと、桁数の大きい数字を読めません。 みなさんはどんな風に読んでいますか? 例えば、1,234,500を いきなり、百二十三万四千五百と分かるようになりますか?

  • autocadの寸法線の数値に3桁区切りのカンマ

    autocadで寸法線を引いたときの数値に3桁区切りのカンマをつける事はできるのでしょうか。手元の入門書には設定方法が載っていないのですが、カンマを設けることはできないのでしょうか。宜しくお願い致します。

  • 3桁区切りで寸法をカンマ表示(AutoCad)

    AutoCad LT 2004、Win XP SP2です。 寸法表示を3桁区切りでカンマ表示させたいのですが、 地域と言語のオプション⇒数値で設定していますが、カンマが表示されません。どこから設定をすればよいのでしょうか。 宜しくお願いします。

  • 引数をカンマ句切りしたデータにしたいです。

    お世話になります。 Perlのプログラムの中で、 引数の数値を、後ろから3桁毎にカンマ句切りして 表示したいと思っています。 (例) 10000000 → 10,000,000 カンマを入れる方法を教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl

専門家に質問してみよう