重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

【やりたい事】
以下の手順をマクロにて実現したいです。画像添付あります
アドバイスorコードご存じの方、教えて下さい。宜しくお願いします

1リストブックにあるデータの対象の行のセルを、どこでも良いので選択【アクティブセルにする】
2同データと同じお客様番号をデータブック(別ブック)より探す
3見つかったら、データブックのE列に100を入力。また、A-E列までを黄色くする
4もしくは、同じお客様番号が無ければ、見つかれませんとメッセージを表示


【リストブック】
C:\Users\2020\OneDrive\マクロ\住所転記\リスト.xlsm

【データブック】
C:\Users\2020\OneDrive\マクロ\住所転記\データ.xlsx


【黄色について参考】
ColorIndex⇒ 6
カラー定数⇒ vbYellow
XlRgbColor列挙⇒ rgbYellow
#16進⇒ #FFFF00

「【マクロ】元データと同じお客様番号を別デ」の質問画像
  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (2件)

以下のマクロを標準モジュールに登録してください。



Public Sub お客様番号検索()
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastrow1 As Long
Dim lastrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim custNo As String
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
MsgBox ("アクティブなブックが" & ThisWorkbook.Name & "でない")
Exit Sub
End If
Set ws1 = ActiveSheet
If ws1.Name <> "Sheet1" Then
MsgBox ("アクティブなシートがSheet1でない")
Exit Sub
End If
row1 = ActiveCell.Row
lastrow1 = ws1.Cells(Rows.Count, "A").End(xlUp).Row
If row1 < 2 Or row1 > lastrow1 Then
MsgBox ("アクティブなセルが範囲外")
Exit Sub
End If
custNo = ws1.Cells(row1, "A").Value
Set wb2 = Workbooks("データ.xlsx")
Set ws2 = wb2.Worksheets("Sheet1")
ws2.Cells.Interior.Pattern = xlNone
lastrow2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row
For row2 = 2 To lastrow2
If custNo = ws2.Cells(row2, "A").Value Then
ws2.Cells(row2, "E").Value = 100
ws2.Range("A" & row2 & ":E" & row2).Interior.Color = vbYellow
Exit Sub
End If
Next
MsgBox ("見つかれません")
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます
いきなり、期待どおりの動作をしました

これからご教授いただいた、コードを勉強させて頂きます
大変、ありがとうございます

お礼日時:2025/05/05 17:51

補足要求です。


1.マクロ実行時、データブックである、データ.xlsxは既にオープンされているのでしょうか。
それとも、データ.xlsxはクローズした状態であり、マクロでデータ.xlsxをオープンするのでしょうか。

2.以下の処理をマクロで行うとありますが、これは、手作業の誤りではないでしょうか。
手作業で以下の処理を行ったのち、マクロを起動するのではないでしょうか。
下記の処理です。
「1.リストブックにあるデータの対象の行のセルを、どこでも良いので選択【アクティブセルにする】」

3.リストブックの対象となるシートのシート名は何でしょうか。

4.データブックの対象となるシートのシート名は何でしょうか。
    • good
    • 0
この回答へのお礼

tatsumaru77 様
リクエストありがとうございます
1. データ.xlsxは既にオープンとなっています

2.申し訳ございません。手作業の誤りです 
>「1.リストブックにあるデータの対象の行のセルを、どこでも良いので>選択【アクティブセルにする】」

3. Sheet1 です

4. Sheet1 です

ご検討の程、宜しくお願いします

お礼日時:2025/05/05 16:34

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