• ベストアンサー

行を非表示です

お願いします A列にはコード番号を表示しています 7行目から 102 104 107 110 101 105 順不順です End(xlUp))で最終行を取得します 上記中のR列に空白セルがある場合その行をEntireRow.Hidden = True で非表示としたいのです どうかご指導おねがいします

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

当方も回答1さんと同様なことを感じます。 End(xlUp)やEntireRow.Hiddenなどを使える人が なせ、Ifの基本を??? と、まあ、それは置いといて。。。 '----------------------------------------------- Sub Test()  Dim i As Long  For i = 7 To Cells(Rows.Count, "A").End(xlUp).Row    If Cells(i, "R").Value = "" Then      Cells(i, "R").EntireRow.Hidden = True    End If  Next i End Sub '----------------------------------- 行削除は次のコードでもいい。  Rows(i).Hidden = True 以上です。

その他の回答 (3)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

全行表示にすれば良いのでは Sub 行再表示()   Rows("1:" & Rows.Count).Hidden = False End Sub

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

そこまで判っている(コードのカケラを書いている)なら、なぜ質問になるのかな。 もしつまずきがあるなら、その点挙げて置くべき。 R列の最終行から上に、各行でR列は空白か聞いて、空白なら行の非標示に設定しては。 既に非表示の行はあるという前提か。 行は非表示でも、For Nextで(削除と違って)全行捕まえられるのでは。だから下から処理しなくてもよいのかも。 テスト Sub test02() For i = 1 To 10 MsgBox i Next i End Sub 非標示行(があるが、そ)の行番号も表示する。

daisen2305
質問者

補足

imogasi 様 ありがとうございます すみません A列にはコード番号 b列には現場名 cは工期 dは請負額 EからQまではその工事の科目ごとの経費が記入され最後のR列で その工事経費計が表示されます 工事によっては発生していない経費があるため、R列の合計がないです その経費合計は、時々表示するためR列のない工事名を非表示にしたか ったためです。 説明不足すいません

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

最終行から見ていけば For i = 最終行 To 7 Step -1   If Cells(i, "R").Value = "" Then     Rows(i).Hidden = True

daisen2305
質問者

補足

最終行を記述して以下のようにしました 出来ました 確認いただけたら幸いです 問題ないようでしたら閉じます よろしくお願いします Sub 行非表示() Application.ScreenUpdating = False 最終行 = Range("a10000").End(xlUp).Row For i = 最終行 To 7 Step -1 If Cells(i, "R").Value = 0 Then Rows(i).Hidden = True End If Next End Sub Sub 行再表示() Application.ScreenUpdating = False 最終行 = Range("a10000").End(xlUp).Row For i = 最終行 To 7 Step -1 If Cells(i, "R").Value = 0 Then Rows(i).Hidden = false End If Next End Sub

関連するQ&A

  • 13行目のセルの値が0のとき、その列を非表示にする

    Windows7 Excel2007でマクロ作成中の初心者です。 13行目のセルの値が、0のときは、その列を非表示にするというマクロを作ろうとしましたが なかなか難しくておてあげです。探したら次のようなコードがでてきました。 ボタンを押すとK列の値を参照して「A」と表示されている行を隠し、「表示する」ボタンを押すと、 解除するという処理。 Option Explicit Private Sub Cmd隠す_Click()  Dim 行番号 As Long  '行を隠す  For 行番号 = 4 To 13   If Cells(行番号, 11).Value = "A" Then    Cells(行番号, 1).EntireRow.Hidden = True   End If  Next 行番号 End Sub Private Sub Cmd表示する_Click()  '表全体を再表示する  Cells.Select  Selection.EntireRow.Hidden = False  Selection.EntireColumn.Hidden = False  Cells(1, 1).Select End Sub このコードを利用して、13行目のセルの値が、0のときは、その列を非表示にするというコードにしたいのです。 よろしくおねがいします。

  • 結合されているセル行の中から1行だけを非表示にするマクロ

    結合されているセル行の中の1行だけを非表示したいと思っています。 例えばA1:A5が結合していて、B1:E5までは一切結合されていない状態で、3行目だけを非表示にしたいのですが、 Rows("3:3").Select Selection.EntireRow.Hidden = True とすると、1~5行目まで全てが非表示になります。 マクロを自動記録すると Rows("3:3").Select Range("B3").Activate Selection.EntireRow.Hidden = True となるのですが、この通りにコーディングしても、やはり1~5行目が非表示になります。 1行だけを非表示にしたい場合は、どのように記述すれば良いのでしょうか? よろしくお願いします。

  • エクセル・マクロで最終行を表示することについて

    エクセル・マクロで最終行を表示することについて C列の最終行を表示する場合、以下のマクロで表示できます。 今回はC列に C1=A1&B1 C2=A2&B2  ↓ という式が入力されている場合について質問します。 A列とB列が空白の場合、C列には0が表示されます。 したがって、下記のマクロだとこの0の行が最終行となります。 私の希望はこのC列の0は空白とみなし、0以外の値や文字が入力されている最終行を表示することです。 どのような工夫をすれば可能でしょうか? ご指導よろしくお願いします。 Sub 最終行表示() maxrow = Range("c65536").End(xlUp).Row MsgBox maxrow End Sub

  • 条件を付けて行の非表示をしたい

    G列H列I列の9行目から60行目まで数字が入力されています 同じ行でG列H列I列それぞれのセルの数字が"0"の時はその行を非表示にします G列だけを条件には出来たのですが、複数の条件がうまくできません Dim i As Long Dim targetRange As Range For i = 9 To 60 Set targetRange = Range("G" & i) If Not IsEmpty(targetRange) Then If targetRange.Value = 0 Then targetRange.EntireRow.Hidden = True End If Next i どなたかご教授いただけますでしょうか

  • エクセルのチェックボックスでの行の表示の切り替え

    エクセルでチェックボックスを使用して行の表示を切り替えています。 これに他のチェックボックスのON-OFFで表示する行を変えたいと思います。 例えばチェックボックスが3つあり チェックボックス3のON-OFFで行10-20を非表示と表示に切り替えている マクロがあります。 それをチェックボックス1がONの時は行11-20が非表示に チェックボックス2がONの時は10-19が非表示になるようにマクロに追加 するにはどうすればよいでしょうか? ちなみにチェックボックスはActiveXの方を使用しています。 今のコードは Private Sub CheckBox3_Click() If CheckBox3 = True Then Range("10:20").EntireRow.Hidden = False Else Range("10:20").EntireRow.Hidden = True End If End Sub です。 よろしくお願いします。

  • 指定した範囲内が空白なら行削除するマクロ

    エクセルで指定した範囲内(A列からC列まで)で何も文字が入っていなければ(空白)、行を削除する、というマクロを教えてください。 いくつか調べて、以下を試しましたが、何も動作しませんでした。 どなたかアドバイスをいただければ助かります。 よろしくお願いします。 Sub DeleteBlankRows2() Application.ScreenUpdating = False On Error Resume Next With Columns("A:C") .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True .SpecialCells(xlCellTypeComments).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True End Sub

  • 二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする

    二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする windows7 excelでマクロ作成中の初心者です。 以下のコードで27行目のセルの値が0のとき列を非表示にします。 Private Sub 列非表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = True End If Next 列番号 ActiveSheet.Protect End Sub ------------------------------------------------- Private Sub 列表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = False End If Next 列番号 ActiveSheet.Protect End Sub この27行と、もう一行の28行、どちらかの行が、0のときに列を非表示・表示したいのですが、出来ません。 試行錯誤してもできないのです。どうかよろしくおねがいします。 For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 or Cells(28, 列番号).Value = 0 Then or( Cells(27, 列番号).EntireColumn.Hidden = True, Cells(27, 列番号).EntireColumn.Hidden = True) End If

  • エクセルで行を非表示にするとアクティブなセルが・・・

    エクセルで行を非表示にするとアクティブなセル?行?がどこかわからなくなり、マクロでアクティブなセルを移動するときにエラーが出ます。 Sub example() ActiveSheet.Range("D3").Select Do Until ActiveCell = 23 If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -3).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -6).Select Else: ActiveCell.EntireRow.Select Selection.EntireRow.Hidden = True ActiveCell.Offset(0, -6).Select End If Loop End Sub 一番下のActiveCell.Offset(0, -6).Select にエラーが出るのですが、どうすればセルを移動できるでしょうか?

  • エクセルVBAで非表示にする方法

    エクセルのVBAを使って表示・非表示の切り替えをする方法を教えてください。 マクロは初心者のため、コードを書いていただけると嬉しいです。 (1)6~9行目、11~14行目、16~19行目…151~154行目まで を表示・非表示 (2)合計列・差額列 (列に名前を入れています。ABCなどどの列に入るかはケースによりかわります) 今のところ、 Rows("6:9").Hidden = True Rows("11:14").Hidden = True Rows("16:19").Hidden = True . . . Columns("Q:R").Hidden = True で誤魔化していますが、時間がかかりますし、列はその都度設定している状況です。 ご指導お願いします。

  • 塗りつぶしのない行を非表示にするマクロ

    塗りつぶしのない行を非表示にするマクロを作成したいのですが、 どこが問題で実行できないのかわかりません! 例えば8行目に対して実行したい場合を教えてください! ちなみに自分で作成したVBAはこんな感じです。 Sub macro1() If Rows("8:8").Interior.Color = xlNone Then Rows("8:8").EntireRow.Hidden = True End If End Sub よろしくお願いします。 ちなみにexcel2007です。

専門家に質問してみよう