素人質問ですみません。
Excelブックにシートが10枚程度有る内容で、
横並びセル2箇所に別キーワードが有る物を探す方法を確認したいです。
現在はExcelの検索でキーワード1のみ入れ、都度キーワード2が見つかるまで見て探しています。
イメージで言いますと下記の様にExcelに入れている場合、キーワード1がA社、キーワード2がA品と言う具合です。検索範囲はExcelブック内のシート全てとなります。10シート有れば10シートと言う意味ですので、Excelブック全てと言った方が良いでしょうか?
販売先A社 B品 仕入れ先名
販売先B社 B品 仕入れ先名
販売先C社 B品 仕入れ先名
販売先A社 A品 仕入れ先名
販売先B社 A品 仕入れ先名
販売先C社 A品 仕入れ先名
ご知見有りましたら、宜しくお願いいたします。
No.5ベストアンサー
- 回答日時:
あ”~~~!
どうも失礼しました。
ドット「.」が抜けていました。
If InStr(.Cells(i, "E"), myStr1) > 0 Then
If InStr(.Cells(i, "F"), myStr2) > 0 Then
のように「Cells」の前に「.」を追加してください。
※ 本来であれば
If InStr(Worksheets(k).Cells(i, "E"), myStr1) > 0 Then
If InStr(Worksheets(k).Cells(i, "F"), myStr2) > 0 Then
のようなコードになるのですが、
「Worksheets(k)」を何度も記載するのが面倒なので
>With Worksheets(k)
として
省略しています。
「.」を付けることにより「Worksheets(k)」の・・・
という意味になります。
「.」がないとSheetを指定していないコトになりますので、
アクティブなSheetを参照し、すべてのSheetに色が付いたのだと思います。
どうも失礼しました。m(_ _)m
御連絡有難うございました。
早々に確認させて頂きました。
結果、考えていた内容となり、非常に感動しております。
誠に有難うございました。
小生はソフト作成等は良く解っておりませんが、この様なことが出来ると楽しいと思いました。
今回は色々と何度もお手を加えて頂き、有難うございました。
感謝申し上げます。
No.4
- 回答日時:
お礼欄を拝見しました。
結局完全一致ではなく、部分一致(キーワードが含まれる)セルを検索すればよいのですね?
No.3で訂正した
>If .Cells(i, "E") = myStr1 Then
>If .Cells(i, "F") = myStr2 Then
の2行を
>If InStr(Cells(i, "E"), myStr1) > 0 Then
>If InStr(Cells(i, "F"), myStr2) > 0 Then
としてみてください。m(_ _)m
早々の御連絡有難うございました。
早速頂きました情報にて実施して見ましたが、
見ているシートのE・Fの5に対象キーワードが有るとした場合、
見ているシートは問題無く黄色に塗られ確認出来ています。
但し、全てのシートでE・Fの5が黄色くなる現象が出ています。
下記が頂きました情報として入れている内容となります。
改めてご確認頂ければ幸いです。
*********************************************
Sub Sample2()
Dim i As Long, k As Long, myStr1 As String, myStr2 As String
myStr1 = Application.InputBox("キーワード1を入力")
myStr2 = Application.InputBox("キーワード2を入力")
For k = 1 To Worksheets.Count
With Worksheets(k)
For i = .Cells(Rows.Count, "E").End(xlUp).Row To 1 Step -1
If InStr(Cells(i, "E"), myStr1) > 0 Then
If InStr(Cells(i, "F"), myStr2) > 0 Then
.Cells(i, "E").Resize(, 2).Interior.ColorIndex = 6
Exit For
End If
End If
Next i
End With
Next k
End Sub
*********************************************
お手すきの際に、宜しくお願いいたします。
No.3
- 回答日時:
続けておじゃまします。
投稿後補足コメントを見ました。
>例えばE列とF列に変更する場合・・・
というコトですので、
No.2のコード内の
>For i = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
>If .Cells(i, "A") = myStr1 Then
>If .Cells(i, "B") = myStr2 Then
>.Cells(i, "A").Resize(, 2).Interior.ColorIndex = 6
の4行を
>For i = .Cells(Rows.Count, "E").End(xlUp).Row To 1 Step -1
>If .Cells(i, "E") = myStr1 Then
>If .Cells(i, "F") = myStr2 Then
>.Cells(i, "E").Resize(, 2).Interior.ColorIndex = 6
のように列番号だけを変更してみてください。m(_ _)m
小生、出張となりましたため、確認・御連絡遅くなりました。
確認しました所、やりたい内容が確認出来ました。
誠に有難うございました。
但し、セル内のキーワード文言ですが、セル内のコメントが全て同じで無いと検索が出来ない様子です。
やりたい例として....
セル内コメント ・A社A支店 ・A品C系とある場合、キーワード1がA社 キーワード2がA品と入力すれば検索出来るとなります、より効率的であると思いました。
お願いばかりで恐縮ですが、上記の内容が出来ると言う手法があるので有れば、
お知らせ頂ければ幸いです。
急ぎではございませんので、お手すきの際で結構です。
宜しくお願いいたします。
No.2
- 回答日時:
No.1です。
>下側から探せればよりありがたいと思います。
というコトですので、↓のコードに変更してください。
配置は前回同様だとします。
Sub Sample2()
Dim i As Long, k As Long, myStr1 As String, myStr2 As String
myStr1 = Application.InputBox("キーワード1を入力")
myStr2 = Application.InputBox("キーワード2を入力")
For k = 1 To Worksheets.Count
With Worksheets(k)
For i = .Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If .Cells(i, "A") = myStr1 Then
If .Cells(i, "B") = myStr2 Then
.Cells(i, "A").Resize(, 2).Interior.ColorIndex = 6
Exit For
End If
End If
Next i
End With
Next k
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
こんにちは!
VBAになりますが一例です。
>横並びセル2箇所に別キーワードが有る物を探す方法・・・
とありますが、具体的な配置が判らないので、すべてのSheetが↓の配置のように
A列に「キーワード1」、B列に「キーワード2」が入っているとします。
そして見つかった場合はどうすればよいのか判らないので「黄色」で塗りつぶすようにしてみました。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から//
Dim k As Long, myStr1 As String, myStr2 As String
Dim myFound As Range, myFirst As Range
myStr1 = Application.InputBox("A列のキーワード1を入力")
myStr2 = Application.InputBox("B列のキーワード2を入力")
For k = 1 To Worksheets.Count
With Worksheets(k)
Set myFound = .Range("A:A").Find(what:=myStr1, LookIn:=xlValues, lookat:=xlWhole)
If Not myFound Is Nothing Then
Set myFirst = myFound
GoTo 処理
Do
Set myFound = .Range("A:A").FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
処理:
If myFound.Offset(, 1) = myStr2 Then
myFound.Resize(, 2).Interior.ColorIndex = 6 '←黄色★
Exit Do
End If
Loop
End If
End With
Next k
End Sub 'この行まで//
※ 最初にヒットした行が見つかればそのSheetはそこでやめています。
※ インプットボックスが表示されますので
それぞれに「キーワード1」と「キーワード2」を入力してください。m(_ _)m
早速の御連絡ありがとうございました。
頂きました情報で確認出来ましたが、
同じ内容の次を探す場合はどの様にすれば良いのか?解りませんでした。
こちらの都合でExcelデータは履歴が古いのがExcelの上側で履歴が新しいのが下側になりますので、下側から探せればよりありがたいと思います。
お手すきの際に御教示頂ければ幸いです。
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Amazon アマゾンで出版中の本の販売部数を伸ばすためには、どうすれば良いですか? 4 2022/08/18 23:30
- その他(パソコン・スマホ・電化製品) カシムラ スマートカメラ 取付け部材について 1 2023/08/12 23:48
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) エクセル count関数で出てきた数だけの行数をリンクで参照する 3 2022/08/10 12:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- ディスカウントストア・ドラッグストア アルコール入除菌シートについて 写真のように、真ん中の部分。軽くふたで押し上げて中身をとるようなまさ 6 2022/08/15 16:58
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
エクセルで一部除外した数字を...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルの関数SUBSTITUTEを、...
-
オートフィルについて(急ぎ!)
-
エクセルで2列を検索し2列とも...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルのマクロ/VBAを教えて...
-
エクセル 2010 マクロ 残セル表...
-
エクセルvba 一つ上の行を指定...
-
ビンゴ用抽選番号を作りたいのです
-
エクセル マクロで列を連続し...
-
VBAでFormula関数を使ってVlook...
-
テキストボックス内の文字のふ...
-
Excelで数値→文字列変換で指数...
-
Excelで行ごとコピー、同じ行を...
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
Excelの関数について、特定の文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
エクセルで同じ名前ごとの合計...
-
桁数が混在する並び替えの方法
-
エクセルVBA Unionはなぜ遅い?
-
エクセルの関数SUBSTITUTEを、...
-
エクセルで一部除外した数字を...
-
エクセルで列内の同じIDの商品...
-
EXCEL VBA 指定範囲内で特定の...
-
Excelで自動的に並べ替えなんて...
-
エクセル マクロで列を連続し...
-
エクセルで2列を検索し2列とも...
-
エクセル VLOOKUPが反映されない
-
エクセルvba 一つ上の行を指定...
-
ExcelVBA:列方向の並び替え O...
-
Excelで1列の数字の内、ある行...
-
エクセルマクロでA欄に値があ...
-
オートフィルについて(急ぎ!)
-
VBAでFormula関数を使ってVlook...
-
エクセルの関数についての質問...
-
EXCEL 指定した曜日に番号を振...
おすすめ情報
回答者: tom04 様
追加でご存知でしたら、サンプルはA列とB列にしましたが、例えばE列とF列に変更する場合もご教示いただけますと幸いです。