Excel VBA質問箱 IV

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

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


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

【69211】複数列の検索 dan 11/6/6(月) 7:44 質問[未読]
【69213】Re:複数列の検索 UO3 11/6/6(月) 10:26 お礼[未読]
【69215】Re:複数列の検索 ponpon 11/6/6(月) 13:15 発言[未読]
【69218】Re:複数列の検索 dan 11/6/6(月) 22:03 お礼[未読]
【69219】Re:複数列の検索 gochuukoku 11/6/6(月) 23:37 発言[未読]

【69211】複数列の検索
質問  dan  - 11/6/6(月) 7:44 -

引用なし
パスワード
   A列に0を含みかつB列に1が含まれない場合,
msgbox"NG"
を表示するというような,マクロを組みたいのですが,
どのように記述したらよいでしょうか?
よろしくお願いいたします。

【69213】Re:複数列の検索
お礼  UO3  - 11/6/6(月) 10:26 -

引用なし
パスワード
   ▼dan さん:

こんなことですか?

Sub Sample()
  Dim n0 As Long, n1 As Long
  n0 = WorksheetFunction.CountIf(Columns("A"), 0)
  n1 = WorksheetFunction.CountIf(Columns("B"), 1)
  If n0 > 0 And n1 = 0 Then MsgBox "NGだそうです"
End Sub

【69215】Re:複数列の検索
発言  ponpon  - 11/6/6(月) 13:15 -

引用なし
パスワード
   countifを使った方法を思いついたのですが、
UO3さんが、応えているので、

こんなんではどうでしょう??
引数省略すると弊害があるかな??

Sub test()
  Dim A、B
  
  Set A = Range("A:A").Find("0")
  Set B = Range("B:B").Find("1")
 
  If Not A Is Nothing And B Is Nothing Then
   MsgBox "NGだそうです"
  End If

End Sub

【69218】Re:複数列の検索
お礼  dan  - 11/6/6(月) 22:03 -

引用なし
パスワード
   お二方とも,丁寧なご回答ありがとうございました。

CountIfは初めて知りました。
勉強になります。

私は実は後者の方に近いほうの考え方で模索していたのですが,
なるほど,「0を含む」ほうを
If Not 〜 Is Nothing と記述すればよかったのですね。
ありがとうございました。

とり急ぎお礼まで。


↓自分でも記述してみました。


Sub NGTest()

Dim myStr0 As String
Dim myStr As String

Dim mycell0 As Range
Dim myCell As Range
    
    myStr0 = "0" '検索する文字列
    myStr = "1"

'検索
    Set mycell0 = Range("A2", Range("A65536").End(xlUp)).Find(myStr0)
    Set myCell = Range("B2", Range("B65536").End(xlUp)).Find(myStr)
    
If Not mycell0 Is Nothing And myCell Is Nothing Then
    MsgBox "NGだそうです。", vbCritical, "NG!!"
End If

End Sub

【69219】Re:複数列の検索
発言  gochuukoku  - 11/6/6(月) 23:37 -

引用なし
パスワード
   余計なことですが、
> 引数省略すると弊害があるかな??
ですね。
LookAt:=xlWhole ぐらい指定しておかないと、
直前に行った検索が部分一致だったとすると、
それに引きずられて、例えば10に1がマッチすることになります。

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