プロが教える店舗&オフィスのセキュリティ対策術

数値に桁区切り表示や小数点表示をする場合、日本や英米では、例えば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枚目に入力した数値を参照して計算し、表示されます。したがって、地域設定は使えないと思います。

このようにシートごとに数値の表記方法を変えるにはどうしたらよいのでしょうか?
ご教示くださいませ。

A 回答 (5件)

こんにちは。



>まだエクセル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: .

ちなみに、私は、相手は相手でキリがないので、こちらは英文も書式も相手に合わせることはしませんでした。

この回答への補足

> 相手は相手でキリがないので、こちらは英文も書式も相手に合わせることはしませんでした。

たしかにそうですね、きりがありません。
ただ、今回は本文が仏文や独文なので数値表記だけ英米(日)式とは行かなかったのです。

補足日時:2007/11/22 17:22
    • good
    • 0
この回答へのお礼

なるほどぉ!!
一旦、FIXEDで文字列に変えてから置き換えるわけですか。
さすがです。
有難うございました。

ところで
=SUBSTITUTE(FIXED(A1,0),",",".")&","&RIGHT(FIXED(A1,2),2)
でもいいんですよね?
名前-定義を使ったのはなぜなのでしょうか?

お礼日時:2007/11/22 17:21

前から見たことがあるなと思いWEB照会すると


Application.DecimalSeparator and Application.UseSystemSeparators.
http://www.bmsltd.ie/ExcelProgRef/Ch22/ProgRefCh …
(「Excel 2002's International Options」で検索すると出ますが)
でエクセル2002でも使えるようです。ひょっとすると2000でも使えるかも。小生など無縁ですが、他の内容も参考になるかも。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/23 15:03

こんばんは。



>名前-定義を使ったのはなぜなのでしょうか?

その理由は、数式の中を直接書き換えるよりも、セルに登録しておけば、切り替えが楽だからです。その状況に合わせて、VLOOKUPなども使えますよね。
    • good
    • 0
この回答へのお礼

> 数式の中を直接書き換えるよりも、セルに登録しておけば、切り替えが楽

確かに。
仰せの通りでございます。有難うございました。

お礼日時:2007/11/23 15:02

オープンオフィスならできます。


セルの書式設定で言語を選択できるようになっているため、シート単位でなく、セル単位で変更可能です。
http://oooug.jp/faq/index.php?Faq%2FCalc#content …

オープンオフィスは無料のオフィスソフトです。
http://ja.openoffice.org/
編集は自分だけ、マクロは使わないなら十分な機能があります。(一応マクロ機能もあります)
配布するときにはオープンオフィスを入れてまわるわけにも行かないと思うので、印刷するかPDFに出力することになります。
(PDF出力機能もあります)

MS Excel形式に出力できますが、その設定は失われます。

また私の環境はExcel2002ですが、Wendy02さんがNo1で書いたマクロはうまく機能しました。
しかし別のPCに入っているExcel97ではエラーになりました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/22 17:26

こんにちは。



それは、Excelなら、International モードのあるバージョン(2003以上)だと思いますが、マクロで、シートの切り替えごとに、

たとえば、
Application.DecimalSeparator = ","
Application.ThousandsSeparator = "."
Application.UseSystemSeparators = False

とすればよいのではありませんか?

確か、それ以下のバージョンでの変更の方法を、ここのカテゴリで書いた人がいたと思います。もしかしたら、APIで換えるかもしれませんが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/22 11:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!