マクロで作業をもっと楽にしたい
(シート名は上から 分析、分析 (2)、 分析 (3)としています )
上の3つのミニロト出現表シートでのブロック分けしたところの番号未出現部分を灰色に塗りつぶす時に、該当セル部分をマウスで指定後マクロで実行していましたが面倒でした。(マウスで指定するのは手動なので余り意味のないマクロw)
そこで下のようにマクロを新しく作ってみました。
該当セルの1セル指定後マクロでブロックの複数セルの塗りつぶします。
セルの列範囲は10から40でシート毎にブロック分け範囲が違うのでシート名毎に
塗つぶす範囲を指定します。(分析、分析 (2)、 分析 (3) 各シート)
Sub B_Hset() '未出現ブロック塗りつぶしマクロ
Dim retu, gyou, As Integer
Dim sheetName As String
sheetName = ActiveSheet.Name ’作業時のシート名を変数に格納する
retu = ActiveCell.Column
gyou = ActiveCell.Row
’3つのシート名毎のブロック範囲指定
If sheetName = "分析" Then
If retu >= 10 And retu <= 18 Then
Range(Cells(gyou, 10), Cells(gyou, 18)).Select
ElseIf retu >= 19 And retu <= 28 Then
Range(Cells(gyou, 19), Cells(gyou, 28)).Select
ElseIf retu >= 29 And retu <= 38 Then
Range(Cells(gyou, 29), Cells(gyou, 38)).Select
ElseIf retu >= 39 And retu <= 40 Then
Range(Cells(gyou, 39), Cells(gyou, 40)).Select
End If
ElseIf sheetName = "分析 (2)" Then
If retu >= 10 And retu <= 14 Then
Range(Cells(gyou, 10), Cells(gyou, 14)).Select
ElseIf retu >= 15 And retu <= 19 Then
Range(Cells(gyou, 15), Cells(gyou, 19)).Select
ElseIf retu >= 20 And retu <= 24 Then
Range(Cells(gyou, 20), Cells(gyou, 24)).Select
ElseIf retu >= 25 And retu <= 29 Then
Range(Cells(gyou, 25), Cells(gyou, 29)).Select
ElseIf retu >= 30 And retu <= 34 Then
Range(Cells(gyou, 30), Cells(gyou, 34)).Select
ElseIf retu >= 35 And retu <= 40 Then
Range(Cells(gyou, 35), Cells(gyou, 40)).Select
End If
ElseIf sheetName = "分析 (3)" Then
If retu >= 10 And retu <= 15 Then
Range(Cells(gyou, 10), Cells(gyou, 15)).Select
ElseIf retu >= 16 And retu <= 21 Then
Range(Cells(gyou, 16), Cells(gyou, 21)).Select
ElseIf retu >= 22 And retu <= 27 Then
Range(Cells(gyou, 22), Cells(gyou, 27)).Select
ElseIf retu >= 28 And retu <= 33 Then
Range(Cells(gyou, 28), Cells(gyou, 33)).Select
ElseIf retu >= 34 And retu <= 40 Then
Range(Cells(gyou, 34), Cells(gyou, 40)).Select
End If
End If
With Selection.Interior ’塗つぶす(以前のマクロはこれだけ)
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
End Sub
同じようなロト6のマクロも、シート名と範囲指定以外はもまったく同じです。
間違って塗つぶしをしないように、ブロック内のデータチェックもするようにしたのが
良いかも知れません。その場合ボーナス数字は対象外にしているので工夫が必要ですね。
これが簡単に出来ればもっと楽になります。
今は目で見て何回も上のマクロ動かしてが、一度であるいはもっと自動化出来る様になって行きます。(考え中です)
マクロで作業を楽にしたい=頭をもっと使えですね。
塗つぶした部分を元に戻すこともあったのが?
Select Case を使っても同じマクロが出来ると思います。そのほうがスッキリしますね。
変数 知らなかった本当の使い方 - 趣味のエクセルで当てようロト・ナンバーズ
続・マクロで作業をもっと楽にしたい - 趣味のエクセルで当てようロト・ナンバーズ
マクロ作成方法11(バージョンアップ) - 趣味のエクセルで当てようロト・ナンバーズ