• ベストアンサー

エクセル セル値 行 非表示

過去の回答を参考にさせていただき,私なりに頑張ったのですが,どうしてもマクロ設定が上手くいきません。朝からかれこれ12時間が経とうとしています。(涙) M列が0~150行まであるのですが,そのM列の中にあるセルが「0」を示した行を非表示にするマクロを組みたいと思っています。どなたかお知恵を拝借できませんでしょうか。 ご教授,どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

ん? 削除なんてこと勿論やってませんよ。 マクロで何をやってるのか、まったく理解できてないのはよくわかりました。 非表示:(再掲) sub hidezero() range("M:M").autofilter field:=1, criteria1:="<>0" end sub 再表示: sub showalldata() activesheet.autofiltermode = false end sub 「あなたの非表示マクロ」に勝手にこれらを使っても、同じく全く効き目はないので間違えないようにしてください。

kumamon2013
質問者

お礼

ありがとうございました。 おかげで仕事が進みました。 本をじっくり読んで,勉強します。 またなにかありましたらよろしくお願いします,

その他の回答 (3)

  • AkiraHari
  • ベストアンサー率19% (255/1313)
回答No.3

マクロの自動記録で行の非表示を試してください。 それで、1行非表示にする方法が解ります。 次に1行目から150行目までループして、もし0だったら非表示にする、としてください。 "ループ"(繰り返し)や"もし"(分岐)ということをどのようにコーディングしたらいいかが分からないなら、まずはExcelVBAの本を1冊買って勉強してください。

kumamon2013
質問者

補足

本を昨日買っていろいろ試していますが,なかなか的確にいかず,ネット&このサイトに頼っています。仕事上,急ぎの用事で,今まで手にしたことがないVBAにチャレンジしている次第です。本も読みながらネットも検索しながらやっているのですが…手際が悪くてすみません。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

どういうアプローチをしているのか提示が無いのは、勝手にやってイイという事です。 sub macro1() range("M:M").autofilter field:=1, criteria1:="<>0" end sub みたいな。

kumamon2013
質問者

補足

ご回答ありがとうございます。 教えていただいたマクロで「0」を含んだ行は非表示になりました!! が…再表示のマクロで再表示されません。 ということは…「削除」なのかな?と思い,補足しています。 あくまで「非表示」とかってできませんか? 的外れな意見・お願いでしたら,申し訳ございません。

  • OKWavex
  • ベストアンサー率22% (1222/5383)
回答No.1

うまくいかない例を示せば間違いの個所を指摘できるでしょう

kumamon2013
質問者

補足

次のサンプル1が、「A列のセルの値が1の時、その行を非表示にします。」ということだったんで,他にも似たようなサンプルを集めていろいろ試してみたのですが,どうもマクロが初心者で…「1」の代わりに「0」を入れるとデバッグ表示が出てしまい,上手くいきません。やはり,マクロの組み方が根本的に違っているのでしょうか? ●サンプル1● Sub Sample1() Dim LastRow As Long Dim i As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To LastRow If Cells(i, 1) = 1 Then Rows(i).Hidden = True Next i End Sub

関連するQ&A