- ベストアンサー
エクセル 0を見えなくするマクロ
エクセルの表でデータが数の0のところだけ、0を見えなくしたいです。0がいっぱいあると表が見にくい感じなのです。 っで、考えた方法はデータ0のところだけ文字を白くしちゃったらどうかなという方法です。でも、その度に色を変えるのは大変なので、たとえばマクロで0のところだけ文字を白くするマクロなんてものはできますか? それとも他に良い方法がありますでしょうか?
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
まず、範囲選択で0を表示したくない範囲を選びます。 書式→条件付き書式 を選んで、 「セルの値が」「次の値に等しい」「0」として、その下の書式ボタンを押して、フォントの色を白にします。 これで0が見えなくなります。実際には白い字で書かれていますが。
その他の回答 (7)
たびたびすみません。#7です。 よく考えると,もっとシンプルで簡単なマクロがありました。 ----------------------------------- Sub ゼロ値の非表示設定() ActiveWindow.DisplayZeros = False End Sub ----------------------------------- Sub ゼロ値の表示設定() ActiveWindow.DisplayZeros = True End Sub ----------------------------------- です。#1さんのやりかたをマクロで自動化しただけです。 つまりこんなことは普通マクロでしないお笑いマクロです。 でも作り方は他に応用できると思うのでその一例を書いておきます。 「マクロ自動記録」を利用します。この方法は大変便利で重宝します。 自分がした作業をマクロとして記録させる方法です。 まず,「表示」→「ツールバー」で「フォーム」にチェックを入れてください。 ツールバーに「フォーム」ツールバーが表示されると思います。 1「フォーム」ツールバーの「ボタン」をクリックします。 (四角の上にXYZとか書いてあるボタンの右隣のボタンです。) 2シートの任意の場所を範囲指定するようにドラッグします。 すると勝手に「ボタン1」と書かれたボタンと「マクロ登録」ダイアログボックスが出てくると思います。 3「マクロ登録」のダイアログボックスから「記録」をクリック。 4「マクロの記録」のダイアログボックスで「OK」をクリック。 ここから先のエクセル上の作業は全てマクロ化されます。無駄なことをしないように注意してください。無駄なことをしても良いですけが無駄な作業まですべて記録されてしまいます。 5「ツール」→「オプション」→「表示タブ」で ウィンドウオプションの「ゼロ値」のチェックを外す。 (外していた場合はチェックを付けてください。) 6「ツール」→「マクロ」→「記録終了」 これで完成です。 「ボタン1」をクリックするだけで,ゼロ値を表示しなくなります。 5でチェックを付けた場合はその逆,ボタンをクリックするだけでゼロ値を表示します。 「ツール」→「マクロ」→「マクロ」で,「マクロ」のダイアログボックスを出し,「編集」をクリックすると,今作ったマクロが確認できると思います。 頭に「'」がついていて色が緑色になっている行は 注釈行で,マクロ実行にはあってもなくてもどちらでも良い行です。 これで完成ですが,表示用と非表示用のボタンが2つ要ります。 これは不便だと思われたら,マクロの編集でマクロを --------------------------- Sub ゼロ値の表示非表示() If ActiveWindow.DisplayZeros = True Then ActiveWindow.DisplayZeros = False Else If ActiveWindow.DisplayZeros = False Then ActiveWindow.DisplayZeros = True End If End If End Sub --------------------------- と書き換えれば, ゼロ値を表示のときは→非表示 ゼロ値を非表示のときは→表示 という表示・非表示をボタン1つで切り替えられるマクロができます。 ここくらいまですると,少しはマクロの意味が出てきますね。
お礼
ありがとうございます。今はなんでも教えてほしい時期なので、嬉しいです。 結局、条件付き書式でやったのですが、0なら消すってだけじゃなく、数字があったら( )でくくって、0なら( )も無くしてみたくなりました。エクセル初心者なので、左のセルに「(」右のセルに「)」 なんて形で( )をつけたのですが、なんかユーザー書式ならひとつのセルでできそうかもって思ってきたところです。
みなさん良く知ってらっしゃいますね。すごい。 私もだいたい#1さんの方法を使います。決してマクロは使いません。 でも,元はマクロのご要望だったので,不要だということはおわかり頂けたと思いますが,マクロは簡単なので1例。 ------------------------------ Sub ゼロ値を非表示() ' ゼロ値のセルを白色文字にするマクロ Dim Tmp As Range For Each Tmp In Selection.Cells If Tmp <> "" Then If Tmp = 0 Then Tmp.Font.ColorIndex = 2 End If End If Next End Sub ------------------------------ ついでに,0を白色にしてしまったので元に戻すマクロ ------------------------------ Sub ゼロ値を表示() ' ゼロ値のセルを標準文字色にするマクロ Dim Tmp As Range For Each Tmp In Selection.Cells If Tmp <> "" Then If Tmp = 0 Then Tmp.Font.ColorIndex = xlAutomatic End If End If Next End Sub ------------------------------ 初心者の方がみてもすぐわかりますね。 ------------------------------ 適当に選択されたセルを見て, もし,選択したセルの値があった場合 かつ もし,選択したセルの値「0」場合 文字色を白(ColorIndex = 2)に おわり おわり ------------------------------ というような内容です。 上のように For Each ○○ In Selection.Cells が付いているマクロはたいてい,「何かしたい範囲を選択」→「マクロ実行」というパターンで使います。 どの行やどの列でも使えるので,私はよくこの方法を使います。 データが入力されている範囲を選択してマクロを実行すれば, 0値のセルの文字色が白になります。 注意:シート全体を選択しないでください。 シート全体を選択して実行した場合, 全てのセルを見に行きますのですごく時間がかかります。 しばらく止まっているようだったら「Esc」キーで終了させてください。 マクロだけ書いても使い方がわからない方もいらっしゃるので, マクロの準備&実行例も書いておきます。わかっていらっしゃったら無視してください。 ~マクロの準備&実行例~ [ツール] メニュー→ [マクロ]→[マクロ]でマクロダイアログボックスを出します。 [マクロ名] ボックスに、「実行するマクロの名前」を入力し,「作成」をクリック Visual Basicエディタが開くと,Module1に ---------------------- Sub 実行するマクロの名前() End Sub ---------------------- がすでに用意されていると思います。ここを ---------------------- Sub ゼロ値を非表示() ' ゼロ値のセルを白色文字にするマクロ Dim Tmp As Range For Each Tmp In Selection.Cells ~~省略~~ Next End Sub ---------------------- のように書きかえ,一旦Visual Basicエディタを閉じます。 これでマクロの作成は終わりです。 ~マクロの実行方法~ 方法1 ショートカットから実行 再び[ツール] メニュー→ [マクロ]→[マクロ]でマクロダイアログボックスを出します。 [マクロ名] ボックスの下にある大きなボックスから 「実行するマクロの名前(ゼロ値を非表示)」を選択し「オプション」を選択し, マクロオプションダイアログボックスから ショートカットキー 「Ctrl」+「任意のキー」でショートカットを登録すれば, 次回からこのショートカットキーでマクロが実行されます。 「任意のキー」は P A C Z など日頃自分が使われているキーは避けた方が良いです。 方法2 画像から実行 自分で書いた絵やネット上のボタン画像や写真もマクロ実行のボタンとして使用できます。 ボタンにしたい画像を右クリック→「マクロの登録」で 「実行するマクロの名前」を選択→「OK」で マクロ実行ボタンの完成です。 その他, ツールバーのフォームからボタンを作って,そのボタンにマクロを登録するなど, マクロ実行には色々な実行方法があります。 長くなってしまいすみません。 0値を非表示にする場合,とにかくマクロは使いません。使わない方が良いです。 もし,他のことでマクロを作られることがあったら少しは参考になるかもしれないと思い書かせていただきました。
お礼
ありがとうございます! みなさんの回答で今回はマクロ以外に良い方法があることは解ったのですが、今 初心者で、エクセルってすごい!っと興味たっぷり、なんでも知りたい・・・という時期なので、マクロを教えていただくのは、それはそれでやっぱり参考になり嬉しいです。エクセルが使いこなせたら魔法使いになった気分でしょうね。
- mshr1962
- ベストアンサー率39% (7417/18945)
セルの書式設定の表示形式でもできますよ。 ユーザー定義にして #,##0_ ;-#,##0_ ;"" ←正の数値;負の数値;0 でも表示されません
補足
セルの書式設定ということは、他のシートや他のセルには影響なくできるのですね。それは便利ですね。使ってみたいです。 すみません、エクセル初心者なので、もう少し詳しく教えていただけますでしょうか。ユーザー定義をあけて見たら、上記の定義は入っていなかったのですが、これは自分で登録するのですか? 上記の定義の意味はどういう意味なのでしょうか?
- sesera
- ベストアンサー率32% (17/52)
マクロを組む方法ではありませんが、私も以前同様の経験から使用した方法を回答させて頂きます。 ツールバーの「ツール」→「オプション」を選択するとダイアログボックスが出てきます。その中の「表示」タブをクリックして、「ウィンドウオプション」の「ゼロ値」チェックボックスをOFFにします。参考になれば幸いです。
お礼
ありがとうございます。みなさんにご回答いただくといろいろなことが覚えられて楽しいです。
- periodayo
- ベストアンサー率20% (64/315)
これでは、だめでしょうか ActiveWindow.DisplayZeros = False 水のお話 http://homepage2.nifty.com/gosen/
補足
ごめんなさい。エクセル初心者なので、言っていただいていることが解りません。専門家の方なのですね。せっかくアドバイスしてくださっているのに、解らなくてごめんなさい。あれしたい、これしたい、こんなこともできたらいいな・・・という思いはあるのですが、まだ関数もろくに使えないヒヨッコです。
- shironekoxxx
- ベストアンサー率26% (218/832)
条件付書式はいかがでしょう? 書式メニューの中にあります。
補足
なんだか面白そう! っと思って条件付書式を開いてみたのですが、使い方がよく解りません。ヘルプを見ても、よく解らなくて・・・。エクセル初心者であんまりいろいろなことをしたことがありません。条件付書式の書き方のアドバイスをしていただけたらありがたいです。
- Protel99
- ベストアンサー率34% (93/271)
ツール → オプション → 表示タブ ウィンドウオプションの 「ゼロ値」のチェックを外してください。
お礼
こんな簡単な方法もあるんですね。エクセルっていろいろな機能があるんですね。ありがとうございます。
お礼
ありがとうございました。早速やってみました。とっても簡単なんですね。これは便利! いろいろ利用できそうですね。いいことを教えていただいてありがとうございます。