- ベストアンサー
VBAのfindメソッドでセルの"先頭の"特定の文字のあるセルを検索したい。
下記に示すようなテキストがワークシート(Sheet1)に 貼り付けてあります。 (Sheet1) A1:第一条 この法律は平和の為にある。 A2:第二条 この法律は戦争反対。 A3:2 すごいぞ日本。 A4:第二条の二 がんばれ日本。 A5:一 第二条は多分最強。 これから、【先頭が】"第*条*" というセルのみを検索したくて 以下のようなFindメソッドを組みました。 Sheets(Sheet1").Columns(1).Find("第*条*") ところが、結果として抽出されるのは 第一条 この法律は平和の為にある。 第二条 この法律は戦争反対。 第二条の二 がんばれ日本。 一 第二条は多分最強。 と、セルの先頭以外に"第*条*"が存在するセルも検索してしまいます。 検索結果が 第一条 この法律は平和の為にある。 第二条 この法律は戦争反対。 第二条の二 がんばれ日本。 となるようにするには、Findメソッドをどのように 組めばよいのでしょうか? どなたがご指導をお願い致します。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- Excel VBAのFindメソッドについて
Excel VBAを勉強中の者です。 Findメソッドで、数字の入ったF5セルからF28セルの範囲から、 1という数字の入ったセルを検索したいと思い Sub test() Dim xRange As Range Set xRange = Range("F5:F20").Find(What:=1, LookIn:=xlValues) xRange.Select End sub としました。 しかし、このまま検索するとF6セルの12が検索されてしまいます。 他の数字では問題なく、対象の数字の先頭の数字が選択されます。 どうしてでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBA セルを参照した文字検索
どなたか教えてください。 ブックAのシート1の“A1”の値が、ブックBのシート1のA列に完全一致であるかどうかを検索し、あればそのセルをアクティブ、なければメッセージを返すという処理をVBAで行いたいです。 Findメソッドを使うのかなというのは、なんとなくわかるのですが、検索値が毎回異なり直接検索値をコードに記入できないこと、異なるブックで検索することなどにより、コードの記載方法がわかりません。 どなたか、わかる方お教えください。
- ベストアンサー
- オフィス系ソフト
- ExcelVBA Findメソッドで検索のスタート位置について
おせわになっております。 Findメソッドを用いて、先頭から順に値を検索しようとしています。 Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) ↑ このような方法で、該当するものを一つ一つ探そうとしています。 つまり、仮に一列目で見つかったら、次は二列目以降から探そうと しています。 FindNextなどを使用しないのは、連続で求めるためではなく、 ボタンを押したときに一つずつ検索するからです。 しかし、この書式ではスタート地点にした、次のセルから検索する はずが、スタート地点に指定したセルから検索してしまい、 何度行っても同じセルばかりを検索して返してしまいます。 Offsetなどで一行ずつずらしても、同じ場所からしか検索が 始まりません。 これはなぜなのでしょうか? 念のため、他のメソッドなどでは決してrngSearch は代入等の 操作はしておりません。 ちなみに、同じメソッドの中で同じ書式を繰り返すと Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value Set rngSearch = rngList.Find("ゴルフ", rngSearch, , xlPart) MsgBox rngSearch.Value … うまくいくようなのです。一度でもメソッドを抜けるとうまくいか なくなるような感じです。 以上、わかりづらい説明で大変申し訳ありませんが、なにとぞお願い 致します。
- ベストアンサー
- Visual Basic
- vbaのFindメソッドで取得するにはどうすれば
A1に「あ」B1に「い」と入れて、 A2に「=A1&B1」としました。 この時、A2は「あい」と表示されます。 今回やりたいことは、 Sub test() Debug.Print Cells.Find(What:=" あい").Row End Sub で、2を返したいのですが、 実行時エラー91になってしまいます。 セル内に該当の文字列がないからだと思いますが、 数式でつなげた文字列を、 vbaのFindメソッドで取得するにはどうすれば良いでしょうか?
- ベストアンサー
- Excel(エクセル)
- vbaにて特定の文字を検索し、置換して、セルの色を変えるには?
エクセルの複数セル内に文章が入っているのですが、その中で「田中」という文字を検索して、見つかれば、「山田」という文字に置換し、セルの色を変えたいのですが、findメソッドやreplaceを使えばなんとなくできそうな感じがするのですが、どうしてもうまくいきません。 どなたかご存知の方がいればご教示ください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【excelVBA】Findメソッドで検索対象を複数列
findメソッドで、検索対象を複数列&検索条件を複数にしたいのですが、可能でしょうか? イメージ的には、下のようなデータが入っているシートから、 AとB列を条件にしてC列の同じ行の値を取得したいのです。 A |B |C 00|00|01 00|00|02 00|01|01 Range("A:B").Find(what:="00"&"00"・・・)のような感じです。 →期待される取得結果は01と02です。 今のところ方法がおもいつかないので、 (1)A列を条件にしB列 (2)(1)のB列を条件にしC列 と二段階で取得するしかないかな~と思っています。 このような処理は不可能でしょうか?また可能ならばその記述方法をご教授ください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Findを使用して、データが入力されているセルのみを検索
| A | ------- 1| 123 | 2| | 3| 456 | 4| 789 | Excel2003を使用しています。 上記のデータをFindを使用して、データが入力されているセルのみを検索したく、 Set C = Worksheets(AAA).Range("A:A").Find(<>"", LookIn:=xlValues) など、試してみたのですが、上手くいきません。 『Findを使用して、データが入力されているセルのみを検索』する事じたいが無理なのでしょうか。 ご教授の程、お願いします。
- ベストアンサー
- オフィス系ソフト
- VBAマクロ・・同一セルの検索と検索したセルの操作
VBAマクロ・・同一セルの検索と検索したセルの操作 VBAのほぼ初心者です。 決められたセル(たとえばE100)に入力された文字列と同一の文字列を その列内の上(E1~E99)で検索する。 そして、検索できれば(たとえばE30)そのセルがある行(行30)を削除する。 なお、複数検索されれば、検索されたすべてのセルに対応する行を削除する。 というようなことをVBAのマクロで作成したいです。 FindメソッドとDo..Loop Whileを使って試行錯誤してみたのですが、うまくいきません。。 いい方法があれば、是非教えていただきたいです。 どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- VBA 先頭一文字だけ残し、色を無しにしたいです
office365です。 A列に文字が入っており、必ず先頭は何かしらの記号が入っています。 セルには、塗りつぶし書式がかかっている個所があり、色は「黄」で統一です。 A列を検索し、セルに塗りつぶしがされていた場合、そのセルの先頭の文字だけ残して削除し、かつ色無し。 色が塗りつぶしされていないセルは、変化無しです。 という命令を作りたいのですが、どう作ればいいか戸惑っています。
- ベストアンサー
- Excel(エクセル)
- 改行のあるセルをFindで検索したい
エクセルです。 A1セルに 「あああ」と入力して、ALT+Enterで改行し、「いいい」と入力しました。 VBAで Sub test() MsgBox Cells.Find(What:="あああ" & Chr(13) & "いいい", LookAt:=xlWhole).Address End Sub として、セル番地を取得したいのですが オブジェクト変数または With ブロック変数が設定されていません。(Error 91) と言うエラーが返ってきてしまいます。 $a$1が返ってきてほしいのですが。 Sub test() Debug.Print Cells.Find(What:="あああ*", LookAt:=xlWhole).Address End Sub で、$a$1が返ってきますが、 できれば改行含む検索ができるようになりたいです。
- ベストアンサー
- オフィス系ソフト
- 新品のDCP-J528Nプリンターを購入したが、引越しの際にスターターインクを紛失してしまい、プリンターが起動しなくなった。どうすればいいか相談したい。
- DCP-J528Nの新品購入後、引越しの際にスターターインクが紛失してしまい、プリンターが起動しなくなった。困っています。
- DCP-J528Nプリンターの起動プロブレム。新品を購入したが、引越しの際にスターターインクを失くし、プリンターが使えなくなった。対処方法を教えてほしい。
お礼
迅速な対応有難うございます。 完全一致を使えばよかったのですね。 有難う御座いました。