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

はじめまして。

VBAにてファイルAとBがあり、ファイルAにファイルBのデータがあるかを検索して、
ある場合はファイルAの検索した値が入力されているセルの二つ隣のセルに
「あり」、ない場合は「なし」と表記したいのですが、どうしたら可能でしょうか。

FINDで検索して、IF関数NOTHINGとElseで場合分けまでできましたが、
表記できませんでした。

また、VLOOKUPで検索した場合は、IF関数の場合分けもできませんでした。

ご教授願います。

A 回答 (3件)

#1の者です。


ずいぶん時間が経ってしまいましたが、もう解決してますかね?

" の入っている文字列ということですが、

たとえば、
"a" と記載されているセルを判定するなら、クオーテーションを二重にしてやればよいです。

=COUNTIF(範囲,"""a""")

でカウントできますよ。

"a" を 前後2箇所の "" で挟んでますから、a の前には、" が3つ、a の後ろにも " が3つです。
    • good
    • 0

VBAの質問でしたら、必ず、コードは書いてください。

そうしないと、本当にVBAを書いているか分かりません。一応、何個あるのか数えていますが、ある・なしの表示の時に上書きしています。

Sub TestFind()
 Dim Bk1 As Workbook
 Dim Bk2 As Workbook
 Dim c As Variant, r As Range
 Dim rng1 As Range, rng2 As Range
 Dim FirstAdd
 Set Bk1 = ThisWorkbook
 Set Bk2 = Workbooks("Book1")
 With Bk1.ActiveSheet
  Set rng1 = .Range("A1", .Cells(Rows.Count, 1).End(xlUp)) 'A列
 End With
 Set rng2 = Bk2.ActiveSheet.Cells '検索される側の場所
 
 Application.ScreenUpdating = False
 For Each r In rng1
  Set c = rng2.Cells.Find( _
  What:=r.Value, _
  LookIn:=xlValues, _
  LookAt:=xlWhole, _
  MatchCase:=True)
  If Not c Is Nothing Then
   r.Offset(, 2).Value = 1
   FirstAdd = c.Address
   Do Until c Is Nothing
    Set c = rng2.FindNext(c)
    r.Offset(, 2).Value = r.Offset(, 2).Value + 1
    If c.Address = FirstAdd Then Exit Do
   Loop
   FirstAdd = ""
  End If
  If r.Offset(, 2).Value = "" Then
   r.Offset(, 2).Value = "なし"
  Else
   r.Offset(, 2).Value = "あり"
  End If
 Next
 Application.ScreenUpdating = True
 Set rng1 = Nothing: Set rng2 = Nothing
 Set Bk1 = Nothing: Set Bk2 = Nothing
End Sub
    • good
    • 0

VBAじゃなくてはだめですか?



普通にシンプルに関数では?

ファイルA Book1
ファイルB Book2

それぞれのSheet1 のA列にデータが入っているとして、

ファイルAの C2セルに、

=IF(COUNTIF([Book2]Sheet1!$A:$A,A2)>0,"あり","なし")

で下に引っ張って見るとか。

どうしてもVBAにしたいなら上記のことをコードにしてみたらよいのでは?
難しくしないでいいと思いますよ。
    • good
    • 0
この回答へのお礼

ご教授、ありがとうございます。
こちらの説明不足がありました。

「"」が入っている文字列を入力できる方法があればご教授願います。
Excel2003にて「""」の間に「"」があるとエラーとなってしまいました。

ご指南いただいたコードの入力方法をお教え願えないでしょうか。

よろしくお願いします。

お礼日時:2010/11/27 15:06

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