• ベストアンサー

エクセル 条件を最初に満たしたセルの行の値の取得VBA

いつもお世話になっております。 ある表においてA2以降に 2 FALSE 3 FALSE 4 FALSE 5 FALSE 6 FALSE 7 FALSE 8 FALSE 9 TRUE 10 FALSE 11 TRUE 12FALSE 13FALSE ・ ・ となっています。 上から調べて最初に”TRUE”であるセル(この場合はA9)の 行数の値(9)を取得するようなVBAはどのように記述すればよいでしょうか? 関数であればROW関数とVLOOKUP関数の組み合わせでできるのですが・・

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 初歩的なマクロですが、二つ書いておきます。 最初のものが、旧バージョン用(XL97~)です。出来れば、WorksheetFunction.Match にしたいところですが、それを入れると、また難しいコードになってしまいます。2番目はオーソドックスなものです。特に、可もなく不可もなく、というところです。 -------------------------------------------- Sub FindTest() Dim i As Variant Dim r As Range  Set r = Columns(1)  i = 0  i = Application.Match(True, r, 0)  If Not IsError(i) Then    MsgBox i  End If  Set r = Nothing End Sub -------------------------------------------- Sub FindTest2() Dim c As Range Dim r As Range  Set r = Columns(1)  Set c = r.Find("TRUE", LookAt:=xlWhole)  If Not c Is Nothing Then   MsgBox c.Row  End If  Set r = Nothing End Sub --------------------------------------------

oresama
質問者

お礼

ありがとうございました。 TRUEはテキストデータではないので、 前者を採用させていただきました。

すると、全ての回答が全文表示されます。

関連するQ&A