エクセルVBAでの検索機能について

最近の書き込み件数: 今日 0件、昨日 0件
未読分:2件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

Message#2 2015年2月6日(金)01時00分
From: ロンギヌス
返事 削除 変更
Aシートの全体から検索ですか?
それとも特定の範囲を検索ですか?例えばA列のみとか。

一例です。

一応提示されたコードを参考にして、見つけたら次回はその行は検索せずに次の行のA列から検索しています。
もし全体検索がよければ、◎のところを以下に変えてください。
Set temp = SC


Sub Sample()
Dim SC As Range, myRng As Range, ID As Range, temp As Range, Trg As Range
Dim ShA As Worksheet, ShB As Worksheet

Set ShA = Worksheets("Aシート")
Set ShB = Worksheets("Bシート")

'1行目の最終列を格納(Afterで指定するとA2から検索されることになる)
Set temp = ShA.Cells(1, Columns.Count)

'シートのA2を選択してCtrl+↓を押してみてください。A2からそこまで格納します。この範囲が検索範囲になります。
Set myRng = ShB.Range("A2", ShB.Range("A2").End(xlDown))

For Each ID In myRng
Set SC = ShA.Cells.Find(what:=ID, _
after:=temp, _
LookIn:=xlValues, _
lookat:=xlWhole, _
MatchByte:=False, _
SearchFormat:=False)

'見つけ次第Trgに全て格納していく
If Not SC Is Nothing Then
If Trg Is Nothing Then
Set Trg = SC
Else
Set Trg = Union(Trg, SC)
End If

'◎見つけたセルの一つ下の行のA列から検索する為に、最終列を格納しておく◎
Set temp = ShA.Cells(SC.Row, Columns.Count)
End If
Next ID

If Not Trg Is Nothing Then
Trg.Interior.Color = 49407
Else
MsgBox "見つかりませんでした。"
End If

End Sub

Message#1 2015年2月5日(木)23時12分
From: arg135
返事 削除 変更
エクセルのVBAをあるキーワードの検索を行いたいと考えています。

Sheets1シートのリストの中からSheets2シートの商品を検索して見つかった
色をかえるというものです。

マクロの記録から行うのはできたのですが、そこからカスタマイズする方法が分かりませんでした。

おそらくループ処理でまわしていくのだと思うのですが、For〜Next文が苦手でいまいちわかりません。

解決策ありましたら教えてください。

Sub sample()

Sheets("Sheets2").Select

Dim i As Long, cnt As Long, oRange As Range
i = 2
Set ID = Worksheets("Sheets2").Cells(i, 1)


Do While Worksheets("Sheets2").Cells(i, 1) <> ""


Sheets("Sheets1").Select

If ID Is Nothing Then

Worksheets("Sheets1").Cells.Find(what:=ID _
, After:=Worksheets("Sheets1").Cells(i, 1) _
, LookIn:=xlValues _
, LookAt:=xlWhole _
, SearchOrder:=xlByRows _
, SearchDirection:=xlNext _
, MatchCase:=False _
, MatchByte:=False _
, SearchFormat:=False).Activate

If ID Is Nothing Then

Else
ActiveCell.Interior.Color = "Red"
i = i + 1

Loop

End Sub

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

スポンサー リンク

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

スポンサー リンク

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com