【Excel VBA】図形をセルの枠線に合わせる設定をワンクリックで切り替えができるようにするには?

Excel フローチャート

通常、図形をセルの「枠線に合わせる」設定を有効にするには、図形を選択 → 描画ツールの「書式」タブ →「配置」グループの「配置」を選択して「枠線に合わせる」をクリックします。

今回は、ワークシートにボタンを作成して図形をセルの「枠線に合わせる」設定をワンクリックでオンオフの切り替えができるようにしたいと思います。

1.ThisWorkbookにマクロのコードを作成

エクセルの「開発」タブ →「Visual Basic」でVBE(Visual Basic Editor)の画面を表示します。

VBAProjectのThisWorkbookをダブルクリックしてコード入力画面を表示し、次のコードをコピーして貼り付けます。

Private Sub Workbook_Open() 'エクセルファイルを開いたとき自動で実行する。

Application.CommandBars.ExecuteMso "SnapToGrid" 'リボンの「枠線に合わせる」ボタンを押す操作をします。

End Sub

2. 標準モジュールにマクロのコードを作成

VBE(Visual Basic Editor) の「挿入」メニュー →「標準モジュール」で標準モジュールを作成します。

標準モジュールの「Module1」に次のコードをコピーして貼り付けます。

Sub Macro1()

Application.CommandBars.ExecuteMso "SnapToGrid" 'リボンの「枠線に合わせる」ボタンを押す操作をします。

If Application.CommandBars.GetPressedMso("SnapToGrid") Then '「枠線に合わせる」ボタンがONのときは。

MsgBox "図形を「枠線に合わせる」設定をONにしました。"

Else '「枠線に合わせる」ボタンがOFFのときは。

MsgBox "図形を「枠線に合わせる」設定をOFFにしました。"

End If

End Sub

3.シートボタンを作成してマクロを登録

Excelのシート1を表示して「開発」タブ →「挿入」→「ボタン(フォームコントロール)」をクリックします。

ボタンを配置したい場所をマウスでドラッグします。

マクロの登録ダイアログボックスが表示されるので「Macro1」を選択して「OK」ボタンを押します。

ボタンに「Macro1」が登録されました。

4.図形を配置して設定どおり動くか確認

作成したボタンの下に図形を配置します。

ここで一旦エクセルファイルを保存します。

ファイルの種類は「Excelマクロ有効ブック(*.xlsm)」で保存してください。

再びエクセルファイルを開くと図形を「枠線に合わせる」設定が自動でONになります。

ボタン1をクリックすると図形を「枠線に合わせる」設定のON、OFFを切り替えことができます。

設定をONにして図形をドラッグすると、セルの枠線にピッタリ合わせて図形が移動できるようになりました。

エクセルを起動すると「枠線に合わせる」設定は無効になっていて、フローチャートの図形を操作するには都合が悪いので、今回は最初から設定を有効にしてボタンでON、OFFの切り替えができるようにしてみました。