Softex CelwareTech Blog
Excel VBA2026-05-27

図形ボタンで選択セルの値を増減するExcel VBA汎用プロシージャ

図形ボタンのクリックから選択セルを取得し、値を1ずつ増減させるDownValue_ByMoveButton / UpValue_ByMoveButtonを解説します。

Excel VBA汎用プロシージャShapeセル入力入力補助

概要

DownValue_ByMoveButtonUpValue_ByMoveButtonは、図形ボタンをクリックしたときに、現在選択されているセルの値を減少・増加させるプロシージャです。

EventShowMoveSpinButtonで作成した左右ボタンのOnActionに設定して使います。

使う場面

  • 選択セルの数値をクリックで増減したい
  • 図形ボタンをフォームコントロール代わりに使いたい
  • ボタン押下時に視覚的なフィードバックを出したい
  • 値変更処理をChangeValueCellへ分離して再利用したい

処理の流れ

  1. ChangePushedButtonColorでクリックされたボタンの色を一時変更する
  2. GetSelectionCellで現在選択中のセルを取得する
  3. セルが取得できなければ処理を終了する
  4. ChangeValueCellで値を1増やす、または1減らす

使用例

EventShowMoveSpinButtonで作成した図形に、OnActionとして増減処理を割り当てます。

ShapeDown.OnAction = "DownValue_ByMoveButton"
ShapeUp.OnAction = "UpValue_ByMoveButton"

コピー可能な実装コード

DownValue_ByMoveButton,UpValue_ByMoveButton.bas
vba
コードを読み込み中...

初心者向けコード解説

UpValue_ByMoveButtonでは、ChangeValueCell(SelectCell, 1, True)を呼び出します。第3引数がTrueなので、値を増加させる意味になります。

DownValue_ByMoveButtonでは、ChangeValueCell(SelectCell, 1, False)を呼び出します。第3引数がFalseなので、値を減少させます。

どちらも、値を直接変更せず、ChangeValueCellへ任せている点が重要です。クリック処理、選択セル取得、値変更を分けることで、後から最小値・最大値の制御を足しやすくなります。

関連記事

注意点

  • 現在選択中のセルを対象にするため、クリック前の選択状態が重要です。
  • 対象セルが数値でない場合は、値変更処理でエラーになる可能性があります。
  • 実務では、対象範囲や数値判定を追加するとより安全です。

軽いまとめ

この2つのプロシージャは、図形ボタンからセル値を変更するための橋渡し役です。値変更の本体をChangeValueCellへ切り出しているため、ボタンUI以外の処理にも応用しやすい構成になっています。

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →