アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、Excel上にてVBAを習得しているのですが、以下の操作ができないため質問致します。

条件式に関して、「現在のセルとB1セルが一致」のような場合、
ActiveCell.Value = Range("B1").Value
などとすると思いますが、上式の右辺に範囲を指定(ex. Range("B1:D5"))する方法はないでしょうか?
つまり、現在のセルと範囲指定したセル中の「いずれか1つ以上と一致する」場合と、「すべて異なる」場合とで場合分けしたいのですが・・・。

VBAを昨日から始めた初心者なため、言葉の定義が曖昧な部分もあるかと思いますがご了承ください。

A 回答 (2件)

>現在のセルと範囲指定したセル中の「いずれか1つ以上と一致する」場合と、「すべて異なる」場合とで場合分けしたいのですが・・・。



1、ワークシートの関数で COUINTIFがありますので。この関数をVBAで使用する方法
2、エクセルの機能で 検索があります。マクロの記録を実行してみると Findのコードが
  記録されています。
2の方法は、検索して合致したセルの情報や処理もできるので一度、Webで検索して
勉強してみることをお勧めします。

Sub ボタン1_Click()
s = WorksheetFunction.CountIf(Range("B1:D5"), Range("A2").Value)
MsgBox s

Dim c As Variant
Set c = Range("B1:D5").Find(Range("A2").Value)
If Not c Is Nothing Then
fAddress = c.Address
Do
MsgBox c.Address
Set c = Range("B1:D5").FindNext(c)
If c.Address = fAddress Then Exit Do
Loop
End If
End Sub
といったコードは勉強の材料になりませんか
    • good
    • 0
この回答へのお礼

ありがとうございます。

目的の操作が出来ました。
まだまだ勉強不足を実感いたしましたが、とても参考になりました。

お礼日時:2012/03/23 12:14

こういうのを判りやすいと感じる人も多いようです。



sub macro1()
 dim h as range
 for each h in range("B2:D5")
  h.select
  if activecell.value = range("B1").value then
   msgbox "match " & activecell.address
   exit sub
  end if
 next
 msgbox "NOT FOUND"
end sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!