趣味のエクセルで当てよう!ロト・ナンバーズ

当選狙いで、ナンバーズ4をメインにロト、ビンゴ5などの各種データリストや、それらの分析用エクセルVBAなどについて書いてます。

マクロ作成方法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



マクロの自動記録で、どんどんマクロを作って見るのは良いと思います。
記録されたマクロを見てマクロを考えるのは大事だと思います。


・どんな表示になっているか
・一部を変えてマクロを実行したら
・応用するには