• ベストアンサー

エクセルVBA 繰返し処理

下記のようにA、B列があって、B列の”くさっている”をB列の一番下のセルから順番に調べていき、最後に”くさっている”ものとしてA列の”いちご””りんご”をメッセージボックスに出力するような方法を教えて下さい。 ちなみに列の指定は列全体です。 また、コマンドボックスをクリックした時にこのメッセージがでるようにしたいです。 A列   B列 みかん りんご くさっている いちご くさっている めろん

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

Sub test() Dim a, i a = "腐っているのは" For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 2) = "くさっている" Then a = a & "、" & Cells(i, 1) End If Next i MsgBox a End Sub こんな感じで

acchandesu
質問者

補足

早速やってみました。 まさに求めていたものです。 ありがとうございました。

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

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

>B列の”くさっている”をB列の一番下のセルから順番に調べていき、 >最後に”くさっている”ものとしてA列の”いちご””りんご”を これって上から検索して1番目と2番目と言う事とは違うのでしょうか?

acchandesu
質問者

補足

ややこしいことを書いてしまいました。 メッセージボックスに表示される順番は特に関係ありません。 ようは、結果的にくさっているものは”いちご”と”りんご”なんだよということが出力されればよいだけです。 宜しくお願いします。

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

質問がわかりづらいです。 > 最後に”くさっている”ものとしてA列の”いちご””りんご”をメッセージボックスに出力する メッセージボックスに表示する物の条件がわかりません。 B列の一番下から上に向かって調べていった場合、最後に "くさっている" のは "りんご" だと思いますが、なぜ "いちご" も含まれるのでしょうか。 B列に "くさっている" が入っている物全てをメッセージボックスに表示させたいのですか? 100個該当したら 100個もの名前を一度にメッセージボックスに表示するのでしょうか? それともメッセージボックスを 100回表示させるのでしょうか? > ちなみに列の指定は列全体です。 これは何のことを言っているのでしょうか?

acchandesu
質問者

補足

temtecomai2さんの言う通り、メッセージボックスに条件に合うもの全てを表示させたいということです。 なので順番は特に関係ありません。 まぎらわしい表現でした、すいません。 なのでご指摘の通り、100個該当すれば100個表示させたいです。 あと、列の指定の件ですが、この場合範囲をB1:B4と指定せずに、B列全体を指定したいということです。 データが多いので範囲を決めたくなかったためです。 宜しくお願いします。

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

関連するQ&A