- ベストアンサー
【Excel VBA】表示形式
Excel2003を使用しています。 例えば、A1:C30に数値が円単位で入力されているものを、マクロを実行することにより、千円単位で表示するようにしたいのですが、“千円単位”をどのように書けばいいのかわかりません。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
千円未満四捨五入で良ければ、こんな感じではダメだろうか? Selection.NumberFormatLocal = "#,##0," 値は変更せず、セルの表示形式で見た目だけ千円単位にして ます。
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
補足要求です。例えばA1に10000という数値があるとき、マクロ実行後のA1の値は10に置き換えるのですか? それとも10000のままで、表示だけは10にしたいのですか? もし後者だとすればマクロであってもできません。EXCELでは表示形式で数値の「小数点以下の桁数を指定する」ことはできても、「数値をいじらないで見かけの表示桁数を変えること」はできないと思います (もしできたらごめんなさい) 代替案として別のセル(例えばB1)に =A1/1000 のように式を入力する方法はありますが、そのような方法ではいけませんか? (この場合マクロは必要ありません) なお前者であればマクロで可能ですが、そのマクロを2回実行すると、 1,000,000→1,000→1 となってしまったら困りますね。既にそのセルの値は「1/1000」になっていることを判別するルールを考えないとなりません。それを示してください。(例えばセルの書式が 0千円 となっているとか)
補足
アドバイス、ありがとうございます。 >補足要求です。例えばA1に10000という数値があるとき、マクロ実行後のA1の値は10に置き換えるのですか? それとも10000のままで、表示だけは10にしたいのですか? 前者の方です。 示していただいたように代替案も考えたのですが、ある表の中の数値を全て置き換えるので、別のセルを使用するとなると、同じ表をもうひとつ作るような感じになってしまいそうなので、マクロを使用したらどうかなと思った次第です。 あと、マクロを実行したことを判別するルールですが、実行後はセルに色が付くようにするか、“実行済み”など何かメッセージをどこかのセルに表示するようなことを考えています。
お礼
回答ありがとうございます。 なるほど、セルの表示形式で見た目だけという方法もありますね! 早速、試してみたいと思います。 ありがとうございました<(_ _)>