マクロ作成方法14(自動記録・検索)
マクロ自動記録で検索します。下の表の様に0666を検索しています。ホームの検索と置換のメニューから検索を選び、オプションで検索対象を値にしています。
記録されたマクロは以下の様になりました。
Sub Macro1()
Selection.Find(What:="0666", After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=False).Activate
End Sub
自動記録で出来たマクロを元に以下の様に追加修正しています。
検索する番号は文字変数 bango で扱っています。
Sub box_kensaku()
Dim bango As String
On Error GoTo errorcheck
Sheets("box").Select
Range("B3:W65").Select
bango = Application.InputBox("box番号入力して下さい", Default:=Cells(1, 25))
If Len(bango) <> 4 Then MsgBox ("4桁で番号入力してください。"): End
Cells(1, 25) = bango
’---------------------------------------------------------------------------------------------------------------
Selection.Find(What:=bango, After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=False).Activate
’---------------------------------------------------------------------------------------------------------------
retu = ActiveCell.Column
gyou = ActiveCell.Row
Range(Cells(gyou, retu + 1), Cells(gyou, retu + 1)).Select
res = MsgBox("集計しますか", vbYesNo)
If res = vbYes Then
Cells(gyou, retu + 1) = Cells(gyou, retu + 1) + 1
End If
box_kensaku_3
Exit Sub
errorcheck:
MsgBox ("番号がありません。チェックして下さい"): End
End Sub
マクロの自動記録で、どんどんマクロを作って見るのは良いと思います。
記録されたマクロを見てマクロを考えるのは大事だと思います。
・どんな表示になっているか
・一部を変えてマクロを実行したら
・応用するには