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

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

続・またまたマクロエラー?




エクセル2010で問題なく動いていた【ミニロト後追数字集計マクロ】がエクセル2016で良く動きません。(上の表の様に平均以上は緑色、以下は赤色にしています)


(処理にものすごく時間がかかってしまい集計不可能状態になっている、同じパソコン内にある、同じようなロト6のマクロでは、エクセル2016での問題は無いですが?office365になってるから?)


他のパソコンのエクセル2016では問題なく動いていますw


論理的に動くコンピュータが分からなくなりましたw(コンピュータはいい加減ですw)



お手上げ状態ですが、何とかして解決したいです。



変数 知らなかった本当の使い方
下記は現状のマクロですが改善余地がありそうです。
(ロト6のマクロからぱくって来ましたがw)
Sub after_32no() '後追い数字 ボーナス数字含む
Dim i, ii, iii, countre, xa, ya As Integer
Sheets("元データ").Select
countre = Cells(1, 31)
Range("B2:G2000").Select
Selection.Copy
Sheets("後追数字").Select
Range("A1").Select
ActiveSheet.Paste

Range("l4:ap34") = 0
'Selection.ClearContents
i = 0: ii = 0: iii = 0
saikeisanoff


For i = 2 To countre
 For ii = 1 To 6
  xa = Cells(i - 1, ii) '最初数字1,1

  For iii = 1 To 6
   ya = Cells(i, iii) '次回以降数字1,2
   Cells(3 + ya, 11 + xa) = Cells(3 + ya, 11 + xa) + 1


  Next iii
 Next ii
Next i
Cells(2, 28) = "=max(AB4:AB46)"
saikeisanon
Cells(1, 9) = countre & "回"
'条件付き書式
Range("l4:ap34").Select
Selection.FormatConditions.AddAboveAverage
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).AboveBelow = xlAboveAverage
With Selection.FormatConditions(1).Font
.Color = -16752384
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.AddAboveAverage
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).AboveBelow = xlBelowAverage
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

Range("i1").Select

End Sub


ロト6の同じマクロ
Sub after_no() '後追い数字
Dim i, ii, iii, countre As Integer
Sheets("最後当選").Select
countre = Cells(1, 1)
Range("B3:H5000").Select
Selection.Copy
Sheets("後追数字").Select
Range("A1").Select
ActiveSheet.Paste

Range("AB4:BR46") = 0
'Selection.ClearContents
i = 0: ii = 0: iii = 0
saikeisanoff


For i = 2 To countre
 For ii = 1 To 7
  xa = Cells(i - 1, ii) '最初数字1,1
  For iii = 1 To 7
   ya = Cells(i, iii) '次回以降数字1,2
 
    Cells(3 + ya, 27 + xa) = Cells(3 + ya, 27 + xa) + 1


  Next iii
 Next ii
Next i
Cells(2, 28) = "=max(AB4:AB46)"
saikeisanon
Cells(1, 9) = countre & "回"
'条件付き書式
Range("AB4:BR46").Select
Selection.FormatConditions.AddAboveAverage
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).AboveBelow = xlAboveAverage
With Selection.FormatConditions(1).Font
.Color = -16752384
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.AddAboveAverage
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).AboveBelow = xlBelowAverage
With Selection.FormatConditions(1).Font
.Color = -16383844
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

Sheets("後追数字").Select
Range("aa1").Select
End Sub


解決案


条件付き書式の削除


前回までの条件付き書式がマクロ実行中に働いていてマクロ実行速度に影響を与えていたような感じです。したがってマクロの最初の段階で条件付き書式を下のマクロでクリアしました。


Range("L4:AP34").Select '条件書式をクリアする
Selection.FormatConditions.Delete


その他、再計算オフやオンのタイミングも大事な気がします。


マクロを作っている時や、作った後でトラブルが発生することは結構ありますが?
トラブル対処スキルもマクロ作成スキルの大事なポイントな気がします。