| すぐマク YNxv98c | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
|
特定の情報が含まれている最初のセル番号を取得するには? ( Findメソッドの使い方・その1 ) |
|
|
|||
|
サンプルマクロ 「名簿管理」をダウンロード していただいたのですね。
そこで使われているマクロコードは、「検索して別のシートに貼り付ける」として こちらから も
見れますが、オートフィルターで検索しています。 あなたのマクロコードを見ると、Findメソッドを使って検索していますので、本題に入る前に両者の違いを、簡単に押さえておきましょう。 まず、オートフィルターによる検索は、検索範囲内に同一項目が複数個あると、すべて抜き出すことが可能です。 一方、Findメソッドによる検索は、検索範囲内で最初に見つかったセル番号を取得できます。よって、同一項目がないか、最初のデータだけ分かればよい場合には、Findメソッドで簡単に検索できます。 Findメソッドでも次々と同一項目を検索することは可能ですが、マクロが難しくなります。逆に、項目の一部分を指定して検索する場合は、Findメソッドなら簡単です。 ![]() 以後の説明を理解しやすくするために、前述の「名簿管理」で使っているシートを左に転載しておきます。 このシートの B列の名前を検索することにして、進みましょう。 回答に入ります。マクロコードの4行目で出るエラーは、オブジェクトの指定に問題があるからだと思います。 次の例を見習って書きかえてみてください。
Set セル番号 = Columns("B").Find(MOJI)
Columns("B") で B列をオブジェクトとして指定し、Set セル番号 = で Findメソッドで取得したセル番号を格納します。あなたのコーディングの 4行目に Cells… 、 1行目に Range("A1:B1").Select と書いている主旨が、A1セルから B1セルの範囲で検索したかったからでしたら、
Set セル番号 = Range("A1:B1").Find(MOJI)
と、Range オブジェクトを使います。なお、4行目の Cells.Find(… に、引数をズラッと書いてありますが、必要なもの以外は省略できます。くわしく知りたければ こちらから 「Findメソッドの引数一覧表」を見ることができます。 サンプルブックを作っておきましたので、マクロコードを見て研究してみてください。 ダウンロードは ここをクリック (YNxv98c_find.xls 35KB) ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。 |
| http://www.geocities.jp/happy_ngi/ | Contents | Gallery | Introduction | Service | Support | What's New! |