• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:値のクリアと表示形式を数値 赤1234に変更マクロ)

Excel2010で数値の値クリアと表示形式変更マクロ

このQ&Aのポイント
  • Excel2010を使用している場合、値のクリアと表示形式の変更を行うマクロを作成したいです。
  • セルに入力した値が-1234の場合に赤1234と表示させ、作業終了時にボタンをクリックすることで表示形式を数値の赤1234に戻したいです。
  • また、選択したセルの値をクリアするマクロと、あらかじめ指定した範囲のセルの値をクリアし表示形式を変更するマクロの2つが必要です。

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

ANo.2です。 入力エリアを選択してからの場合の2番目のマクロは入力された数値がなければエラーになります。 エラーの処理をしたマクロです。 Sub Macro2() On Error GoTo LINE Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents Selection.NumberFormatLocal = "#,##0;[赤]#,##0" LINE: End Sub

reo9546
質問者

お礼

mar00さん お礼の方が遅れてしまい 大変失礼しました。 何回も 回答していただいたのに もうしわけありませんでした。 質問の内容のものは できました。 内容を理解するように つとめたいとおもいます。

その他の回答 (3)

  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

入力エリアを選択してからの場合  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)
回答No.2

こんにちは! 一例です。 >ボタンクリックで戻したいのですが・・・ とありますので、コマンドボタンを配置しているとします。 (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

reo9546
質問者

お礼

tom04さん お礼のほう 遅くなりもうしわけありませんでした。 できました。もっとエクセル勉強しないとでめですので こまめにしたいです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>2つのパターンでは どうなりますでしょうか?  ⇒先ずは、マクロ記録を行ってそのコード(標準モジュールフォルダ以下に記録)を   確認されては如何でしょうか。

reo9546
質問者

お礼

mu2011さん 回答ありがとうございます。 マクロの記録は やりましたが きれいなコードですと どうなるか?聞きたかったもので すみません。 説明不足でした。