趣味のエクセルマクロ&数字選択式宝くじ

ナンバーズ4などの数字選択式宝くじデータ分析用の自作マクロおよびナンバーズ4などの各種データリストなどをブログにしています。

マクロ作成方法11(バージョンアップ)

マクロを作って使っていくうちに、色々と問題が出て来たり、アイデアが浮かんで来たりします。そうなった場合はバージョンアップを考える時です。誰でも最初から完璧は無理で試行錯誤すると思います。私の結構多い問題はナンバーズなどの日々増えるデータに対して良く考えて無いで適当にマクロを作り、ある日突然エラーが出てくることですね。(良く考えたら分かるので、偶然でなくて必然W)



例えば問題として出力先のセルの行範囲を適当に決めていて、ある日行範囲を超えて他のデータに干渉してしまい間違った答えになるとかします。解決策としては余裕を持ったセルの確保をするしか無いと思います。この辺はマクロの問題と言うより、使い方を良く考えることですから、シート設計の問題ですね。
(マクロは命令通りに動くだけですw もし空行でなければメッセージ出すとかは?)



下の表のようにマクロで当選番号がストレート2回目の時に当選番号の左の線は緑、3回目は左は赤、4回目以上は左右とも赤にしていたが6回まであった! 当然5回目以降と4回目は表示が同じで6回も出たことを何年も気が付かなかった。このへんは中々難しい問題ですね。気が付かなければ解決策も浮かびませんからw
5回6回も処理したいなら下のマクロに追加する必要がありましたw 7回なら?


       caler = WorksheetFunction.CountIf(Range(Cells(2, 66), Cells(i, 66)), Cells(i, 66))
                  Set stcolo = Cells(i, 66)
                        stcolo.Borders(xlEdgeLeft).ColorIndex = 1
          If caler = 2 Then 'ストレート2回目緑色にする
                         stcolo.Borders(xlEdgeLeft).ColorIndex = 4
          ElseIf caler = 3 Then 'ストレート3回目赤色にする
                         stcolo.Borders(xlEdgeLeft).ColorIndex = 3
          ElseIf caler >= 4 Then 'ストレート4回目以上両脇赤色にする
                      stcolo.Borders(xlEdgeLeft).ColorIndex = 3
                      stcolo.Borders(xlEdgeRight).ColorIndex = 3
          End If



作成したマクロを使っていても、更に使いやすいマクロにすれば時間短縮など作業がもっと楽になります。こうすれば楽になるなとアイデアを考えて行くのも大事なことですね。


勿論マクロの改造作業が必要になりますが、面倒でも改造出来ればマクロ作成スキルアップに繋がると思います。