千敗三勝日記

四国でケツイを遊べるゲーセンを捜索中

デレステ、VBA

デレステ

f:id:ark987:20180531225242j:plain

↑今日から始まったLIVE Paradeの想像図。

「長州」の部分をプロデューサーに置き換えればカンペキです。(何が)

 

f:id:ark987:20180531225135p:plain

「客をナメてんのかっ!!」な公演の例。

はい、ナメてます

 

f:id:ark987:20180531225604p:plain

同じ曲を同じメンバーで、同じようにフルコンクリアしても、結構スコアがバラつくんですなという図。

 

VBA(こっちが本題かも)】

Excel ワークブック中のスタイルの数がアホみたいに多くなってまともに動作しなくなったんで、『スタイルを消すマクロを作るか』ってなったんですが、「For each - in Activeworkbook.styles」を使うよりも単純なForループで作る方が、同じ動作結果でも後者の方が10倍くらい動作が速いことを知ってびっくりしました。

「For each・・・」だと、スタイルの関係ない属性まで取ってこようとするので重くなる、単純なForループの方はスタイルを消すのに必要な情報しか取らないから軽い、ってことなんでせうが、コードの組み方でかなり速度に差が出るんですな。

需要は皆無かと思いますが、、、コードを晒してみます。(以下赤字

 

Sub メルヘンデビュー()
    Dim ウサミン As Long
    Dim キャハッラブリー17歳 As Long
    Dim ハートウェーブぴりぴりーん As Long
   
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
   
    キャハッラブリー17歳 = ActiveWorkbook.Styles.Count
   
    ハートウェーブぴりぴりーん = 1
   
    For ウサミン = 1 To キャハッラブリー17歳
        If (ウサミン Mod 10) = 1 Then
            DoEvents
        End If
   
        If Not ActiveWorkbook.Styles(ハートウェーブぴりぴりーん).BuiltIn Then
            ActiveWorkbook.Styles(ハートウェーブぴりぴりーん).Delete
        Else
            ハートウェーブぴりぴりーん = ハートウェーブぴりぴりーん + 1
        End If
   
    Next
   
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True

End Sub