Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6488 / 13646 ツリー ←次へ | 前へ→

【44875】教えて下さいm(__)m 初心者K 06/12/5(火) 11:09 質問[未読]
【44876】Re:教えて下さいm(__)m Statis 06/12/5(火) 11:40 発言[未読]
【44879】Re:教えて下さいm(__)m 初心者K 06/12/5(火) 11:58 発言[未読]
【44881】Re:教えて下さいm(__)m Kein 06/12/5(火) 12:27 回答[未読]
【44883】Re:教えて下さいm(__)m Kein 06/12/5(火) 12:32 発言[未読]
【44884】Re:教えて下さいm(__)m 初心者K 06/12/5(火) 12:53 お礼[未読]
【44889】Re:教えて下さいm(__)m 初心者K 06/12/5(火) 14:15 質問[未読]
【44890】Re:教えて下さいm(__)m Kein 06/12/5(火) 14:32 回答[未読]
【44892】Re:教えて下さいm(__)m 初心者K 06/12/5(火) 14:47 お礼[未読]
【44967】タイトルは内容を示すものに 注意 06/12/8(金) 13:15 発言[未読]

【44875】教えて下さいm(__)m
質問  初心者K  - 06/12/5(火) 11:09 -

引用なし
パスワード
   TextBox1に数字を入れ該当する数字があったセルの行を非表示にしていますが、
該当する数字が無い場合の処置方法が分かりません。
どなたか分かる方がいましたらご教授下さい。

Private Sub CommandButton1_Click()

ERW = Range("A28").End(xlUp).Row
For i = ERW To 1 Step -1
  If Cells(i, 1).Value = TextBox1.Text Then
   
   Rows(i).Hidden = True

  End If
Next

End Sub

【44876】Re:教えて下さいm(__)m
発言  Statis  - 06/12/5(火) 11:40 -

引用なし
パスワード
   ▼初心者K さん:
>TextBox1に数字を入れ該当する数字があったセルの行を非表示にしていますが、
>該当する数字が無い場合の処置方法が分かりません。
>どなたか分かる方がいましたらご教授下さい。
無い場合はどうしたいのですか?
コードを見ると表示しているようですが

>Private Sub CommandButton1_Click()
>
>ERW = Range("A28").End(xlUp).Row
>For i = ERW To 1 Step -1
>  If Cells(i, 1).Value = TextBox1.Text Then
>   
>   Rows(i).Hidden = True
>
>  End If
>Next
>
>End Sub

【44879】Re:教えて下さいm(__)m
発言  初心者K  - 06/12/5(火) 11:58 -

引用なし
パスワード
   すみません。無い場合の事を書いていませんでした。

無い場合は『該当数字がありません』とメッセージを出したいです。

【44881】Re:教えて下さいm(__)m
回答  Kein  - 06/12/5(火) 12:27 -

引用なし
パスワード
   IV列に判定用の数式を埋めて、処理するコードです。
TextBoxの値のチェックや、処理対象シートの特定などは
省略しない方が安全です。

Private Sub CommandButton1_Click()
  Dim Num As Long, Cnt As Long

  With TextBox1
   If .Value = "" Then Exit Sub
   If Not IsNumeric(.Value) Then
     MsgBox "テキストボックスに整数を入力して下さい", 48
     .Value = "": .SetFocus: Exit Sub
   End If
   Num = CLng(.Value)
  End With
  With Worksheets("Sheet1") '←特定シートへの参照を付けること。
   .Cells.EntireRow.Hidden = False
   With .Range("A1", .Range("A28").End(xlUp)).Offset(, 255)
     .Formula = "=IF($A1=" & Num & ",1)"
     If WorksheetFunction.Count(.Cells) = 0 Then
      MsgBox "該当する数字がありません", 48
     Else
      .SpecialCells(3, 1).EntireRow.Hidden = True
     End If
     .ClearContents
   End With
  End With
End Sub

【44883】Re:教えて下さいm(__)m
発言  Kein  - 06/12/5(火) 12:32 -

引用なし
パスワード
   >, Cnt As Long

は不要でした。削除しておいて下さい。
ただし、もし該当した数値が何件あったかをメッセージしたいなら

     Cnt = WorksheetFunction.Count(.Cells)
     If Cnt = 0 Then
      MsgBox "該当する数字がありません", 48
     Else
      MsgBox Cnt & " 件の該当がありました", 64
      .SpecialCells(3, 1).EntireRow.Hidden = True
     End If

などと変更することで、その変数が使えますが。

【44884】Re:教えて下さいm(__)m
お礼  初心者K  - 06/12/5(火) 12:53 -

引用なし
パスワード
   やりたい事が出来ました。
ご親切にご教授頂きありがとうございました。
また機会がありましたらご教授願います。

【44889】Re:教えて下さいm(__)m
質問  初心者K  - 06/12/5(火) 14:15 -

引用なし
パスワード
   B行を検索して行を非表示にする場合、
どのようにコードを変更すれば良いのでしょうか?
出来ればコードの意味も教えて下さい。

Private Sub CommandButton1_Click()

  Dim Num As Long, Cnt As Long


  With TextBox1
   If .Value = "" Then Exit Sub
   If Not IsNumeric(.Value) Then
     MsgBox "テキストボックスに整数を入力して下さい", 48
     .Value = "": .SetFocus: Exit Sub
   End If
   Num = CLng(.Value)
  End With
  With Worksheets("Sheet1") '←特定シートへの参照を付けること。
   .Cells.EntireRow.Hidden = False
   With .Range("A1", .Range("A28").End(xlUp)).Offset(, 255)
     .Formula = "=IF($A1=" & Num & ",1)"
     If WorksheetFunction.Count(.Cells) = 0 Then
      MsgBox "該当する数字がありません", 48
     Else
      .SpecialCells(3, 1).EntireRow.Hidden = True
     Cnt = WorksheetFunction.Count(.Cells)
     If Cnt = 0 Then
      MsgBox "該当する数字がありません", 48
     Else
      MsgBox Cnt & " 件の該当がありました", 64
      .SpecialCells(3, 1).EntireRow.Hidden = True
     End If

     End If
     .ClearContents
   End With
  End With

End Sub

【44890】Re:教えて下さいm(__)m
回答  Kein  - 06/12/5(火) 14:32 -

引用なし
パスワード
   >B行を検索して

Private Sub CommandButton1_Click()
  Dim Num As Long, Cnt As Long

  With TextBox1
   If .Value = "" Then Exit Sub
   If Not IsNumeric(.Value) Then
     MsgBox "テキストボックスに整数を入力して下さい", 48
     .Value = "": .SetFocus: Exit Sub
   End If
   Num = CLng(.Value)
  End With
  With Worksheets("Sheet1") '←特定シートへの参照を付けること。
   .Activate
   .Cells.EntireRow.Hidden = False
   With .Range("B1", .Range("B28").End(xlUp)).Offset(, 254)
     .Formula = "=IF($B1=" & Num & ",1)"
    Cnt = WorksheetFunction.Count(.Cells)
    If Cnt = 0 Then
      MsgBox "該当する数字がありません", 48
     Else
      MsgBox Cnt & " 件の該当がありました", 64
      .SpecialCells(3, 1).EntireRow.Hidden = True
     End If
     .ClearContents
   End With
  End With
End Sub

と、変更します。
>コードの意味
所用があって席を外すので、説明は割愛させていただきます。

【44892】Re:教えて下さいm(__)m
お礼  初心者K  - 06/12/5(火) 14:47 -

引用なし
パスワード
   迅速なご対応ありがとうございました。

【44967】タイトルは内容を示すものに
発言  注意  - 06/12/8(金) 13:15 -

引用なし
パスワード
   タイトルは内容を示すものに
記事のタイトルは、その質問の内容が端的にわかるようなものにしてください。
単に「教えてください」とか「困っています」などといったタイトルでは、回答者があなたの質問をクリックしない可能性が非常に高くなります。すなわち、回答がつかない可能性が高くなる、ということです。

6488 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free