プロが教える店舗&オフィスのセキュリティ対策術

VBAで、特定の文字が入っているセル位置(結合セル)を取得したく、
シートのコード記述で
---
Private Sub Worksheet_Change(ByVal Target As Range)

Dim w_CelObj As Object
Set w_CelObj = ActiveSheet.Cells.Find(What:="あああ", LookAt:=xlWhole, MatchByte:=False)
MsgBox w_CelObj.Row

MsgBox Cells.Find(What:="いいい").Row

End Sub
-----
と記述し、"aa"も"bb"もどちらの方法でも取得できました。

ですが、これを別のEXCELブック(既にシートがたくさんあり、コードもびっしり記述してあります)で同様のことを行おうとするとエラーになってしまいます。
※新しいシートを作成し、そのシートにコードをコピーして試しました。

セルの結合を解除すると正常に取得できるのですが、結合セルだとFindされてきません。
調べてみましたが、「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで、同様の事例を検索できませんでした。

他に何を調べればよいでしょうか?

ご協力よろしくお願いします。

A 回答 (2件)

6 日前にほぼ同一の質問に回答したばかりですので、参考 URL を参照してください。



参考URL:http://oshiete.goo.ne.jp/qa/8243334.html
    • good
    • 0

>同様のことを行おうとするとエラーになってしまいます。



同様じゃなく,ご相談で書かれているとおり

>「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで

ご質問に書かれたマクロとは違う,例えば「対象列を1列に絞った範囲でfindする」みたいなマクロを書いていると,具体的には実行時エラー91等が発生します。


ご自分でも既に対処を得られているようにcells.findするか,若しくは結合されたセル範囲を含む列範囲などを対象に検索させます。
    • good
    • 0

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