• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA セルを参照した文字検索でシートをアクティブにする)

VBAでセルを参照した文字検索でシートをアクティブにする方法

このQ&Aのポイント
  • VBA初心者の質問です。ブックAのシート1のA1の値が、同じブック内の別のシートに存在するかどうか検索し、存在する場合はそのセルをアクティブにして黄色に色づけし、存在しない場合はメッセージを表示する処理をVBAで行いたいです。
  • 参考にしたコードは、ブックBのシート1のA列から、ブックAのシート1のA1の値を検索するものです。検索方法は、値を完全一致で検索し、列ごとに順次検索しています。検索結果が見つからない場合は、「no data」というメッセージを表示します。
  • しかし、このコードは期待通りに動作しません。正しくセルを検索してアクティブにする方法を教えていただけると助かります。

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

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

#1です。 >If ws.Name < AAA > "Sheet1" Then If ws.Name <> "Sheet1" Then こうでは? 上記のIf文がTrue(成立)にならないので変数:chがFalseのままになっているため、 MsgBox"no data"がでてしまうのかと。

cad0113
質問者

お礼

出来ました!! ありがとうございました!! 感激です、これで会社に役立てそうです!!! ありがとうございました!

その他の回答 (1)

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

参考にしたコードではなく、実際に作成し動かないコードを提示し且つどのように 上手くいかないのか書かれた方が宜しいかも。 例えるなら Sub try()  Dim ws As Worksheet  Dim r As Range  Dim ch As Boolean  ch = False  For Each ws In Worksheets      If ws.Name <> "Sheet1" Then         Set r = ws.Cells.Find(Worksheets("Sheet1").Range("A1").Value, _                               LookIn:=xlValues, _                               LookAt:=xlWhole, _                               SearchOrder:=xlByColumns, _                               SearchDirection:=xlNext, _                               MatchCase:=True)         If Not r Is Nothing Then            ws.Activate            r.Select            r.Interior.ColorIndex = 6            ch = True         End If      End If  Next  If ch = False Then MsgBox "no data"  Set r = Nothing End Sub こうゆう事なのかな?

cad0113
質問者

補足

早速のご回答ありがとうございます 自分ではとても思いつかず、いくら考えてもダメだったと思います 検索するのはブックAAA の Sheet1 のセルQ13に入っているBBBという内容だとします Sub try() Dim ws As Worksheet Dim r As Range Dim ch As Boolean ch = False For Each ws In Worksheets If ws.Name < AAA > "Sheet1" Then Set r = ws.Cells.Find(Worksheets("Sheet1").Range("Q13").Value, _ LookIn:=xlValues, _ LookAt:=xlWhole, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, _ MatchCase:=True) If Not r Is Nothing Then ws.Activate r.Select r.Interior.ColorIndex = 6 ch = True End If End If Next If ch = False Then MsgBox "no data" Set r = Nothing End Sub として試してみましたが 他のシートに BBB という単語があるにも関わらず no dataが出てしまいます 私にはこれで正しいように思えるのですが・・・・ どこがいけないのでしょうか・・・・

関連するQ&A