Excelでドット絵作成ツールを作る その9
現状報告
こんな感じです。
やり直し、元に戻すのボタンの押せない感を出してみました。
(実際には押せないわけではなくてマクロの中で判断して、何もしないで終わる)
コード
現時点でのコードは
'///標準モジュール/// <<変更履歴>> '元に戻す Sub doUndo() Call setSettings '設定を共通変数にセット If CurHistory <= 0 Then Exit Sub End If CurHistory = CurHistory - 1 Call setCurHistory Call copyFromHistory Call changeBtnClr End Sub 'やり直し Sub doRedo() Call setSettings '設定を共通変数にセット If CurHistory >= CntHistory Then Exit Sub End If CurHistory = CurHistory + 1 Call setCurHistory Call copyFromHistory Call changeBtnClr End Sub 'ボタン色変更 Sub changeBtnClr() Dim btn1 As Shape, btn2 As Shape Set btn1 = Sheets("ドット絵作成").Shapes("btn_undo") Set btn2 = Sheets("ドット絵作成").Shapes("btn_redo") Call setSettings If CurHistory = 0 Then Call enableBtn(btn1, False) Else Call enableBtn(btn1, True) End If If CurHistory = CntHistory Then Call enableBtn(btn2, False) Else Call enableBtn(btn2, True) End If End Sub 'ボタンの有効、無効切り替え Sub enableBtn(btn As Shape, flg As Boolean) Select Case flg Case False '押せないように見せる With btn .Fill.ForeColor.RGB = 10921638 .Line.ForeColor.RGB = 8355711 .TextFrame2.TextRange.Characters(1, 1). _ Font.Fill.ForeColor.RGB = 14277081 End With Case True '押せるように見せる With btn .Fill.ForeColor.RGB = 13998939 .Line.ForeColor.RGB = 10252609 .TextFrame2.TextRange.Characters(1, 1). _ Font.Fill.ForeColor.RGB = 16777215 End With End Select End Sub
こんな感じです。*1
今後
現状ではやり直し、元に戻すが終わったタイミングでボタン色の判定をしています。
が、使ってみて、判定箇所の追加や変更があるかもという気がします。
あと載せたい機能としては「新しいブックに描画部分だけコピーして保存」くらいを考えています。
*1:変更のあったところだけです