• ベストアンサー

エクセルでの数値の表記方法(桁区切りや小数点)

数値に桁区切り表示や小数点表示をする場合、日本や英米では、例えば1千2百34万5千6百78小数点9なら、12,345,678.9 のように、桁区切りはカンマ、小数点はピリオドで表記しますね。 ところがヨーロッパでは、ドイツ、イタリア、ベルギーなどでは、12.345.678,9 のように、桁区切りはピリオド、小数点はカンマで表記します。 また、フランスやロシアでは、12 345 678,9 のように、桁区切りはスペース、小数点はカンマで表記します。 スイスでは言語(独、仏、伊)にかかわらず、12'345'678.9 のように、桁区切りはアポストロフィー、小数点はピリオドです。 Window自体を「地域設定」で直してしまえば、国別にあわせ数値の表記方法は如何様にも対応はできると思いますが、実は今作成しているエクセルはシートごと数値の表記を変えたいのです。1シート目には日本語、2シート目には英語、3シート目がフランス語のようになっており、各シートは1枚目に入力した数値を参照して計算し、表示されます。したがって、地域設定は使えないと思います。 このようにシートごとに数値の表記方法を変えるにはどうしたらよいのでしょうか? ご教示くださいませ。

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

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

こんにちは。 >まだエクセル2000なんです。 私は、あまりAPIとか書きたくないので、もしどなたかいらっしゃったら、お任せします。 以下にあったのですが、これは、モジュールを単独で書くわけではなさそうです。 http://www.ozgrid.com/forum/showthread.php?t=38890 単純に、こちらの XP +XL2000で、APIでやったら、書式自体が崩れてしまい、戻すのに手間を取りました。 ちなみに、単に、表示だけの問題なら、関数で、印刷用のシートをひとつ作ればそれでよいと思います。 例: 123,456.07 =SUBSTITUTE(FIXED(A1,0),",",tsep)&deci&RIGHT(FIXED(A1,2),2) 名前-定義 deci: , tsep: . ちなみに、私は、相手は相手でキリがないので、こちらは英文も書式も相手に合わせることはしませんでした。

merlionXX
質問者

お礼

なるほどぉ!! 一旦、FIXEDで文字列に変えてから置き換えるわけですか。 さすがです。 有難うございました。 ところで =SUBSTITUTE(FIXED(A1,0),",",".")&","&RIGHT(FIXED(A1,2),2) でもいいんですよね? 名前-定義を使ったのはなぜなのでしょうか?

merlionXX
質問者

補足

> 相手は相手でキリがないので、こちらは英文も書式も相手に合わせることはしませんでした。 たしかにそうですね、きりがありません。 ただ、今回は本文が仏文や独文なので数値表記だけ英米(日)式とは行かなかったのです。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

前から見たことがあるなと思いWEB照会すると Application.DecimalSeparator and Application.UseSystemSeparators. http://www.bmsltd.ie/ExcelProgRef/Ch22/ProgRefCh22.htm (「Excel 2002's International Options」で検索すると出ますが) でエクセル2002でも使えるようです。ひょっとすると2000でも使えるかも。小生など無縁ですが、他の内容も参考になるかも。

merlionXX
質問者

お礼

ありがとうございます。 2000ではエラーになりました。

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

こんばんは。 >名前-定義を使ったのはなぜなのでしょうか? その理由は、数式の中を直接書き換えるよりも、セルに登録しておけば、切り替えが楽だからです。その状況に合わせて、VLOOKUPなども使えますよね。

merlionXX
質問者

お礼

> 数式の中を直接書き換えるよりも、セルに登録しておけば、切り替えが楽 確かに。 仰せの通りでございます。有難うございました。

  • RivDte
  • ベストアンサー率56% (18/32)
回答No.3

オープンオフィスならできます。 セルの書式設定で言語を選択できるようになっているため、シート単位でなく、セル単位で変更可能です。 http://oooug.jp/faq/index.php?Faq%2FCalc#content_1_35 オープンオフィスは無料のオフィスソフトです。 http://ja.openoffice.org/ 編集は自分だけ、マクロは使わないなら十分な機能があります。(一応マクロ機能もあります) 配布するときにはオープンオフィスを入れてまわるわけにも行かないと思うので、印刷するかPDFに出力することになります。 (PDF出力機能もあります) MS Excel形式に出力できますが、その設定は失われます。 また私の環境はExcel2002ですが、Wendy02さんがNo1で書いたマクロはうまく機能しました。 しかし別のPCに入っているExcel97ではエラーになりました。

merlionXX
質問者

お礼

オープンオフィスならできるんですか、知りませんでした。 ただ、社内でオープンオフィスってわけにもいかないものですから・・・。 有難うございます。

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

こんにちは。 それは、Excelなら、International モードのあるバージョン(2003以上)だと思いますが、マクロで、シートの切り替えごとに、 たとえば、 Application.DecimalSeparator = "," Application.ThousandsSeparator = "." Application.UseSystemSeparators = False とすればよいのではありませんか? 確か、それ以下のバージョンでの変更の方法を、ここのカテゴリで書いた人がいたと思います。もしかしたら、APIで換えるかもしれませんが。

merlionXX
質問者

お礼

早速、ありがとうございます。 残念ながら当社の標準機はまだエクセル2000なんです。 2003以上だとそういう対応が出来るんですね、初めて知りました。

関連するQ&A