• 締切済み

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

初めて質問させていただきます。 エクセルシートに1万個程度の番号が 縦(行)に並んでいます。なお、番号はそれぞれ異なります。 あるフォームに日付と10個の異なる番号を入力すると、 エクセルシートから合致する番号を検索し、 エクセルシートの一行目に日付が自動的に入力され、 その行を色塗りしたいと考えております。 これをVBA(マクロ)にて作成したいのですが、 初心者なのでどのようにやればよい分かりません。 どうか教えていただけないでしょうか。 よろしくお願いします。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> 1万個程度の番号が > 縦(行)に並んでいます 縦なら行ではなく列です。 番号データはB列にあるものとしてマクロを作成します。 > エクセルシートの一行目に日付が自動的に入力され、 一列目の間違いですね?A列とします。 これでいかがでしょうか? Sub test01() Dim arr Dim i As Integer, n As Integer, x As Integer Dim c As Range x = Application.InputBox("何個の番号を検索しますか?10個なら10と入力して下さい。") x = x - 1 ReDim arr(x) d = Application.InputBox("日付を入力してください。") For i = 0 To x arr(i) = Application.InputBox("検索番号を入力", i + 1 & "回目の入力") Next Columns("A:A").NumberFormatLocal = "yyyy/m/d" For n = LBound(arr) To UBound(arr) Set c = Columns("B:B").Find(What:=arr(n), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) If c Is Nothing Then MsgBox arr(n) & "が見当たりません。" Else c.Offset(0, -1) = d c.EntireRow.Interior.ColorIndex = 6 End If Next n Set c = Nothing End Sub

kazucyan12
質問者

お礼

ありがとうございます。 すごすぎます!! 大変感謝しております。

すると、全ての回答が全文表示されます。

専門家に質問してみよう