• ベストアンサー

エクセル 0を見えなくするマクロ

エクセルの表でデータが数の0のところだけ、0を見えなくしたいです。0がいっぱいあると表が見にくい感じなのです。 っで、考えた方法はデータ0のところだけ文字を白くしちゃったらどうかなという方法です。でも、その度に色を変えるのは大変なので、たとえばマクロで0のところだけ文字を白くするマクロなんてものはできますか? それとも他に良い方法がありますでしょうか?

  • 6923
  • お礼率85% (183/215)

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

  • ベストアンサー
回答No.6

まず、範囲選択で0を表示したくない範囲を選びます。 書式→条件付き書式 を選んで、 「セルの値が」「次の値に等しい」「0」として、その下の書式ボタンを押して、フォントの色を白にします。 これで0が見えなくなります。実際には白い字で書かれていますが。

6923
質問者

お礼

ありがとうございました。早速やってみました。とっても簡単なんですね。これは便利! いろいろ利用できそうですね。いいことを教えていただいてありがとうございます。

その他の回答 (7)

noname#35109
noname#35109
回答No.8

たびたびすみません。#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つで切り替えられるマクロができます。 ここくらいまですると,少しはマクロの意味が出てきますね。

参考URL:
http://hirokei-web.hp.infoseek.co.jp/vba/vba02.htm
6923
質問者

お礼

 ありがとうございます。今はなんでも教えてほしい時期なので、嬉しいです。  結局、条件付き書式でやったのですが、0なら消すってだけじゃなく、数字があったら( )でくくって、0なら( )も無くしてみたくなりました。エクセル初心者なので、左のセルに「(」右のセルに「)」 なんて形で( )をつけたのですが、なんかユーザー書式ならひとつのセルでできそうかもって思ってきたところです。  

noname#35109
noname#35109
回答No.7

みなさん良く知ってらっしゃいますね。すごい。 私もだいたい#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値を非表示にする場合,とにかくマクロは使いません。使わない方が良いです。 もし,他のことでマクロを作られることがあったら少しは参考になるかもしれないと思い書かせていただきました。

6923
質問者

お礼

ありがとうございます! みなさんの回答で今回はマクロ以外に良い方法があることは解ったのですが、今 初心者で、エクセルってすごい!っと興味たっぷり、なんでも知りたい・・・という時期なので、マクロを教えていただくのは、それはそれでやっぱり参考になり嬉しいです。エクセルが使いこなせたら魔法使いになった気分でしょうね。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.5

セルの書式設定の表示形式でもできますよ。 ユーザー定義にして #,##0_ ;-#,##0_ ;"" ←正の数値;負の数値;0 でも表示されません

6923
質問者

補足

セルの書式設定ということは、他のシートや他のセルには影響なくできるのですね。それは便利ですね。使ってみたいです。 すみません、エクセル初心者なので、もう少し詳しく教えていただけますでしょうか。ユーザー定義をあけて見たら、上記の定義は入っていなかったのですが、これは自分で登録するのですか? 上記の定義の意味はどういう意味なのでしょうか?

  • sesera
  • ベストアンサー率32% (17/52)
回答No.4

マクロを組む方法ではありませんが、私も以前同様の経験から使用した方法を回答させて頂きます。 ツールバーの「ツール」→「オプション」を選択するとダイアログボックスが出てきます。その中の「表示」タブをクリックして、「ウィンドウオプション」の「ゼロ値」チェックボックスをOFFにします。参考になれば幸いです。

6923
質問者

お礼

ありがとうございます。みなさんにご回答いただくといろいろなことが覚えられて楽しいです。

  • periodayo
  • ベストアンサー率20% (64/315)
回答No.3

これでは、だめでしょうか ActiveWindow.DisplayZeros = False 水のお話 http://homepage2.nifty.com/gosen/

6923
質問者

補足

ごめんなさい。エクセル初心者なので、言っていただいていることが解りません。専門家の方なのですね。せっかくアドバイスしてくださっているのに、解らなくてごめんなさい。あれしたい、これしたい、こんなこともできたらいいな・・・という思いはあるのですが、まだ関数もろくに使えないヒヨッコです。

回答No.2

条件付書式はいかがでしょう? 書式メニューの中にあります。

6923
質問者

補足

なんだか面白そう! っと思って条件付書式を開いてみたのですが、使い方がよく解りません。ヘルプを見ても、よく解らなくて・・・。エクセル初心者であんまりいろいろなことをしたことがありません。条件付書式の書き方のアドバイスをしていただけたらありがたいです。

  • Protel99
  • ベストアンサー率34% (93/271)
回答No.1

ツール → オプション → 表示タブ ウィンドウオプションの 「ゼロ値」のチェックを外してください。

6923
質問者

お礼

こんな簡単な方法もあるんですね。エクセルっていろいろな機能があるんですね。ありがとうございます。

関連するQ&A

  • エクセルマクロ、教えてください。

    エクセルマクロ、教えてください。 とても困っています 泣 だれかご教授をおねがいいたします。 画像のような表があり、マクロボタンを押すと、画像下のように文字列にして別シートに出力したいのですが、 賢い形で作ることが出来ません。 if文がとても多くなってしまいます。 繰り返し処理などあるようなのですが、難しくてついていけません。 だれかきれいなロジックを教えていただけないでしょうか。 お願いいたします! 条件として、 表は、いくつかあり、画像は果物4種類ですが、野菜8種類の表などにも流用できるマクロをくみたいです。 A商店を左から順番に文字列に格納して、""になるまで繰り返す・・・ ""がきたら、B商店へ・・・といった形でしょうか。 また、商店の数も不特定なので、こちらも""になるまで繰り返すという条件でお願いいたします! エクセル関数で出来るじゃんとおもうでしょうが、例として簡単なものに書き換えただけなので、 回答はぜひマクロでお願いいたします!

  • エクセルのマクロについて【長文です。】

    はじめまして。 今、仕事の中でマクロを使った処理を行おうとしています。 手順は下記の通りです。 【1】アクセスからデータをエクスポートする。 【2】エクスポートしたデータをエクセルで開く。 【3】エクセルの中のデータを表にまとめる。 ごく簡単にご説明すると、このような手順となります。 ここで、皆様のお力をお借りいたしたく、質問いたしました。 【2】と【3】の間で行う、作業なのですが、 アクセスからエクスポートしたデータは日付が「'20070827」のように、 文字列となって表示されてしまいます。 これをマクロで2007/8/27という表示にしたいと思います。 【3】の表へは日付でVLOOKUPを使い一覧にまとめています。 さらに、日付は自動で入る仕組みにしてあります。 はじめのうちは量が少なかったので、置換や区切り位置で どうにかしのいできたのですが、シート数が多くなってしまい、 とても時間がかかってしまいます。 マクロの登録にもチャレンジしてみましたが、 並び位置が変わってしまったりと不都合が出てしまいました。 出来れば、そのブックを開けた段階で日付が変更されるような マクロがありましたら、ぜひ教えてください。 よろしくお願いいたします。

  • EXCELのマクロでデータをクリアしたい

    仕事でエクセルのマクロを使ってリストを作る作業があるのですが、行き詰まりました。どなたか助けて下さい。お願いします。 表を作るのには二つのマクロを使っています。 【一つめのマクロ】 1.定形のウェブページからテキストをコピーする    内容は商品名や商品番号や数量です 2.エクセルの一番左上に貼り付ける 3.するとマクロが働いて貼り付けたデータはseet1に保存されて自動的に新しいシートが用意される 4.新しいシートに別のデータで1.2.を繰り返す この作業は9回まで繰り返し、一旦エクセルを閉じます。 次に再びエクセルで 【二つ目のマクロ】を立ち上げ、現れた『リスト作成』ボタンを押すと自動的に完成の表が作られます。 最初はこの方法で快調だったのですが、行き詰まりました。 ・行き詰まりその1 一つめのマクロで九つまでコピーペーストするのをくり返して、二つ目のマクロを使うと今までのデータをすべて反映して表が作られてしまいます。うまく説明できないのですが、例えば 月曜にコピーペーストして表完成。 火曜に別のデータでコピーペーストして表を完成させると、必要ない月曜のデータも含めて表が出来てしまう。 これが一つめの困りです。 ・行き詰まりその2 二つ目の困りは、ある日別の社員が一つめのマクロを使ってコピーペーストしていたところ、誤って9つ以上シートを作ってしまったらしく、作りすぎたシートを削除しました。 そうしたらフリーズしたので、再起動してやり直ししたら、そのマクロのファイルを開くたびに、上記の失敗が現れてそれ以上のデータが作ることができなくなりました。(2つめのマクロを動かすと失敗データが上書きされるのみです) 快調な時は表が完成すると、一つめのマクロでは何のデータも残りませんでした。 このような稚拙な説明しか出来ないのですが、どなたかご教授下さい

  • エクセル マクロ

    エクセルを使って12桁の数字をsheet A と sheetBとの違いを調べる、表?をつくりたいのですが、マクロを使えば簡単と聞きました、マクロは全くわからないので、マクロを使わなくてもいいのですが、良い方法はありますか?  例えば エクセルの sheet A に 12桁の数字を50, sheet Bに12桁の数字を50, その中からsheetAにはあってsheetBには無いもの、sheetAには無くてsheetBには有るもの を色をつけてわかるようにしたいと思っています。 みなさんよろしくお願いいたします。

  • 別のアプリケーションとエクセルマクロについて

    エクセルとは別のアプリケーションのデータの文字をコピーして エクセルのシートのある決まった位置に張り付ける、ということを 簡単に行いたいのですが、(マクロ的にボタン一つとか) どういった方法がありますか? エクセルのVBAマクロは作っていますが、 別のアプリからデータをコピーして持ってくるというのは、できないですよね。 (csvとかに落とすこともできないデータです。) 別のアプリの文字をコピーする段階で、VBAでは無理だと思うので、 他のプログラム言語だと、そういうことができますか? C言語は少し習いましたが、何か最適な方法や、 このプログラム言語だと、簡単にできるというのがあれば、教えてください。 よろしくお願いいたします。

  • エクセルでグラフをマクロ化することはできますか?

    エクセルで、ごく簡単な表をグラフ化するのですが、マクロ化することはできますか? 例をあげます。 A1、B1、C1、D1、E1にそれぞれ数値(整数)が入っています。セルがたった5つだけの簡単な表です。これと同じ形式の表が10あります。これを円グラフに表し、割合として表示します。一つの表をグラフウィザードで円グラフにするのは、いたって簡単です。しかし、5つあるデータエリアの色をすべて変え、引込み線をつけない、凡例のフォントの大きさ、種類を変えるなど、設定をいろいろ変えました。この操作を10ある表すべてに繰り返しやりたくないのですが、マクロでできますか?あるいは、ほかによい方法がありますか?

  • Excelマクロ

    宜しくお願い致します Excel2007でマクロを使用します 例えば、 MsgBox"今日は" と書きます (その下には、あることを実行される「タグ?」が色々書かれていて実行されます) 実行ボタンを押すと、「今日は」と背景が白色、文字が黒色でメッセージが表示されますが、この文字とか背景の色を目立つ様に好きな色に変える方法は有るでしょうか。

  • エクセルのマクロでこんなことできますか?

    エクセルで毎月のシフト表を作っています。 1.「名前」「開始時刻」「終了時刻」などを入力できるようにしたカレンダーのような表を作成。 2.入力データから、時間数を名前別に集計する。 以上の2つのマクロを作りました。 ここで、1.のカレンダーの表の「名前」は職員の名前だけ入れば良いので、名前の入力欄のセルに入ったら、リストボックスのようなものから選択できるようにできたら使い勝手が良いかな?と思います。 入力ミスを防ぐことと、タイプの手間を省く目的ですが、そういうことってできますか? 何かいい方法がありましたらお教えください。

  • EXCELのマクロで困ってます。

    EXCELのマクロで困ってます。 今EXCELでデータを処理しているのですが、 データが膨大にあり、処理するのにすごく時間がかかっています。 そこでマクロで何とかできないかと思っています。 EXCELに詳しい方のマクロ作成方法について教えてください。 質問内容は 画像の まずはB列の:の後ろにC列、D列、E列の文字を挿入し、それを次の列、次の列と進めていきたいのですが 可能でしょうか? それに開始ボタンと終了ボタンを作って 3人で作業したいと思っています。(後の二人はあまりマクロを知らないので簡単に動作させたい) コピペでは間に合わなく、ホントに困ってます。 よろしくお願いいたします。

  • EXCEL マクロ(2)

    EXCEL マクロ B1セルからF1 B2セルからF2 B3セルからF3 までとに文字"T"のデータであるセルがあります。 (1) その数をカウントして各G1,G2,G3に入れる処理 をどのようにかけばいいですか。

専門家に質問してみよう