概要
ChangePushedButtonColorは、クリックされたShapeの背景色と文字色を一時的に変更し、短時間後に元へ戻すプロシージャです。
図形ボタンは標準ボタンのような押下表現が弱いため、クリック時に色を変えることで、操作したことを利用者に伝えやすくします。
使う場面
- シート上の図形ボタンにクリック感を出したい
- 押したボタンを一瞬だけ強調表示したい
OnActionで呼ばれるマクロ内から、クリック元の図形を操作したい- Excelシート上で軽いUI表現を作りたい
使用例
図形に割り当てたマクロの先頭で呼び出すと、押した図形だけを一瞬強調できます。
Public Sub SampleButtonClick()
Call ChangePushedButtonColor(rgbLightCoral, rgbLightGrey)
End Sub
コピー可能な実装コード
ChangePushedButtonColor.bas
vba
コードを読み込み中...初心者向けコード解説
最初にGetShapePushedを呼び、クリックされた図形を取得します。取得できなければ処理を終了します。
次に、変更前の背景色と文字色を変数に保存します。これを保存しておくことで、クリック時の色変更後に元の見た目へ戻せます。
色を変更した後、WaitByDoEvents(100)で約100ミリ秒待機します。最後に、保存しておいた背景色と文字色を戻します。
関連記事
- クリックされた図形を取得するGetShapePushed
- DoEventsで短時間待機するWaitByDoEvents
- 図形ボタンで選択セルの値を増減するDownValue_ByMoveButton / UpValue_ByMoveButton
注意点
Application.Callerで呼ばれる前提のため、通常のSubから直接呼ぶ場合はクリック元図形を取得できません。- 図形に文字がない場合や、TextFrame2を持たない図形では調整が必要です。
- 待機中に
DoEventsを使うため、長時間待機には向きません。
軽いまとめ
ChangePushedButtonColorを使うと、Excelシート上の図形ボタンに簡単なクリックフィードバックを追加できます。業務ツールの操作感を少し良くしたい場合に使いやすい部品です。
