- ベストアンサー
Excel2010で数値の値クリアと表示形式変更マクロ
- Excel2010を使用している場合、値のクリアと表示形式の変更を行うマクロを作成したいです。
- セルに入力した値が-1234の場合に赤1234と表示させ、作業終了時にボタンをクリックすることで表示形式を数値の赤1234に戻したいです。
- また、選択したセルの値をクリアするマクロと、あらかじめ指定した範囲のセルの値をクリアし表示形式を変更するマクロの2つが必要です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。 入力エリアを選択してからの場合の2番目のマクロは入力された数値がなければエラーになります。 エラーの処理をしたマクロです。 Sub Macro2() On Error GoTo LINE Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents Selection.NumberFormatLocal = "#,##0;[赤]#,##0" LINE: End Sub
その他の回答 (3)
- mar00
- ベストアンサー率36% (158/430)
入力エリアを選択してからの場合 Sub Macro1() Selection.ClearContents Selection.NumberFormatLocal = "#,##0;[赤]#,##0" End Sub (注) 誤って数式の入っている所も範囲に含めて指定してしまうと数式もクリアされてしまいます。 Sub Macro2() Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents Selection.NumberFormatLocal = "#,##0;[赤]#,##0" End Sub (注) 範囲を指定しないで実行するとシート全体の入力した数値(数式と文字は対象外)が対象になってしまいます。 範囲(I17:M29、I32:M51)を決めてある場合 Sub Macro3() Range("I17:M29,I32:M51").ClearContents Range("I17:M29,I32:M51").NumberFormatLocal = "#,##0;[赤]#,##0" End Sub
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 >ボタンクリックで戻したいのですが・・・ とありますので、コマンドボタンを配置しているとします。 (1)入力エリアを選択しての場合 Private Sub CommandButton1_Click() Dim c As Range For Each c In Selection With c .ClearContents .NumberFormatLocal = "#,##0;[赤]#,##0" End With Next c End Sub (2)あらかじめ範囲が決まっている場合 Private Sub CommandButton2_Click() With Range("I17:M29,I31:M51") .ClearContents .NumberFormatLocal = "#,##0;[赤]#,##0" End With End Sub こういう感じではどうでしょうか?m(__)m
お礼
tom04さん お礼のほう 遅くなりもうしわけありませんでした。 できました。もっとエクセル勉強しないとでめですので こまめにしたいです。
- mu2011
- ベストアンサー率38% (1910/4994)
>2つのパターンでは どうなりますでしょうか? ⇒先ずは、マクロ記録を行ってそのコード(標準モジュールフォルダ以下に記録)を 確認されては如何でしょうか。
お礼
mu2011さん 回答ありがとうございます。 マクロの記録は やりましたが きれいなコードですと どうなるか?聞きたかったもので すみません。 説明不足でした。
お礼
mar00さん お礼の方が遅れてしまい 大変失礼しました。 何回も 回答していただいたのに もうしわけありませんでした。 質問の内容のものは できました。 内容を理解するように つとめたいとおもいます。