Softex CelwareTech Blog
Excel VBA2026-05-27

角丸四角形を作図するExcel VBA汎用関数 DrawRectangleRound

指定座標とサイズから角丸四角形のShapeを作成し、負の幅や高さにも対応するExcel VBA汎用関数を解説します。

Excel VBA汎用プロシージャShape図形描画UI

概要

DrawRectangleRoundは、指定した位置とサイズで角丸四角形のShapeを作成する汎用関数です。戻り値として作成した図形を返すため、呼び出し側で文字、色、OnActionなどを続けて設定できます。

選択セルに追従する増減ボタンでは、増加・減少ボタン用の角丸図形を作成するために使っています。

使う場面

  • シート上に図形ボタンをVBAで作りたい
  • 角丸のラベルやボタンを作成したい
  • 図形作成後に文字や色を設定したい
  • 左上以外の方向へドラッグするような座標指定にも対応したい

使用例

Dim btn As Shape
Set btn = DrawRectangleRound(100, 50, 80, 30, ActiveSheet)

btn.TextFrame2.TextRange.Text = "実行"
btn.OnAction = "RunMacro"

コピー可能な実装コード

DrawRectangleRound.bas
vba
コードを読み込み中...

初心者向けコード解説

この関数では、LeftTopWidthHeightを受け取り、Shapes.AddShapemsoShapeRoundedRectangleを作成します。

特徴は、WidthHeightが負の値でも処理できるようにしている点です。幅や高さが負の場合は、基準点が右上、左下、右下のどこにあるかを判定し、実際に描画するDrawLeftDrawTopDrawWidthDrawHeightへ変換しています。

Sheetを省略した場合はActiveSheetに描画します。明示的に対象シートを渡せるため、別シートへ図形を作る処理にも使えます。

関連記事

注意点

  • Sheetを省略するとActiveSheetに作図されます。
  • 負の幅や高さには対応していますが、幅または高さが0の図形は実用上扱いづらくなります。
  • 作成後の文字、色、OnAction、図形名は呼び出し側で設定します。
  • 大量に図形を作る場合は、名前付けと削除条件を決めておくと管理しやすくなります。

軽いまとめ

DrawRectangleRoundは、VBAで図形UIを作るときの小さな作図部品です。作成した図形を戻り値で受け取れるため、ボタン、ラベル、ガイド表示などへ応用しやすくなります。

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

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

無料相談はこちら →