• ベストアンサー

エクセルで特定の列が0表示の場合、その行を非表示にしたい

エクセルで特定の列が0表示の場合、その行を非表示にしたいのですが…ただし、その0値は数式から反映されての0表示です。 よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

マクロを使用しないのであればオートフィルタを利用すればできます 「特定の列」にオートフィルタをかけて、プルダウンメニューの(オプション)→「0と等しくない」を設定すれば「0」以外の行だけが表示されます 数式の結果であっても、直接入力した値でも構いません マクロがよければ補足して下さい。ただ「ツール」→「マクロ」→「新しいマクロの記録」で上記操作をすれば、マクロ(VBA)が全く分からなくてもできると思いますが…

ponpa22
質問者

補足

早速ありがとうございます。 マクロでの処理を行いたいのですが。 よろしくお願いします。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。A列、B列と決まっているなら If Cells(idx, "A").Value = 0 And Cells(idx, "B").Value = 0 Then でよいでしょう。

ponpa22
質問者

お礼

ありがとうございました!!

ponpa22
質問者

補足

たびたびすみmせん、この部分→Const col As String = "A" は このままでよいでしょうか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。マクロでも色々なアルゴリズムが考えられますが、シンプルな方法にします。「特定の列」の列名でマクロを一部修正する必要がありますので、マクロのコメントをみてください 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1() Dim idx As Long Const col As String = "A" '実際の「列名」に直してください Application.ScreenUpdating = False For idx = 1 To Range(col & "65536").End(xlUp).Row   If Cells(idx, col).Value = 0 Then     Rows(idx).Hidden = True   End If Next Application.ScreenUpdating = True End Sub

ponpa22
質問者

補足

ありがとうございます!! できました。 尚、A列、B列共、0の場合というようなことも可能でしょうか? もし、よろしければ、教えていただきたいのですが。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう