エクセルVBA コマンドボタンをシートに設置する2つの方法

vbabuttoneyecatch

エクセルVBAで、シートにマクロ(プロシージャー)を実行させる、コマンドボタンを設置する2つの方法を紹介します。

また参考で、データクリアするボタン設置の場合の注意点も紹介します。

 

エクセルVBAのプログラムを実行するのに、ワークシート上に設置したボタンのクリックでワンポチっとで行いたい。

そんなボタンの簡単設置方法を紹介します。

こんにちは、じゅんぱ店長(@junpa33)です。

 

エクセルVBA コマンドボタンをシートに設置する2つの方法

 

エクセルVBAでコードを作成して、それをエクセル上で実行するには、

ショートカットキー「Alt+F8」でマクロダイアログが表示され、選択のマクロ名を確認して「Enterキー」になります。

先ず先ず簡単に起動できますが、今回はこの操作を、

「ボタンクリック」で一発起動しましょう。ということです。

 

ボタンを挿入するためには、エクセルの「開発」タブの「挿入」から行っていきます。

ボタンには

  • フォームコントロール
  • ActiveXコントロール

の2種類があります。

 

この2種類のボタンの設置方法を説明していく前に、

まず最初に、

ボタンクリックで、起動するプロシージャーを先に作っておく必要があります。

 

説明用に例題を設定します。

 

エクセルVBA シートのクリアーを目的のメソッド別に最速理解 で使った例題を利用します。

 

vbabuttton001
vbabuttton002a

 

このワークシートのSheet1にボタンを設置していきます。

 

フォームコントロールのコマンドボタンを設置します

 

vbabuttton003

ボタンを挿入するために、エクセルの「開発」タブの「挿入」で「ボタン(フォームコントロール)」を選択してください。

矢印下001

vbabuttton004
vbabuttton005a

ボタンを選択するとカーソルが十字に変化しますので、配置したい位置に表示範囲を指定してください。

マクロの登録ダイアログが表示されますのでマクロ名リストから一つ選択することが出来ます。

矢印下001

vbabuttton006a
vbabuttton007

例えば「クリアA」を選択します。

次にボタン名を変更します。ボタン上でマウスの右クリックになります。

メニューの中で「テキストの編集」を選択します。

矢印下001

vbabuttton008
vbabuttton009a

ボタン名をクリアとします。次にボタン名のフォントスタイルを変更します。

マウス右クリックメニューで「コントロールの書式設定」を選択します。

ダイアログでお好きな設定にしてください。

矢印下001

vbabuttton010a

 

この様にコマンドが埋められたボタンが完成しました。

 

ActiveXコントロールのコマンドボタンを設置します

 

vbabuttton011

ボタンを挿入するために、エクセルの「開発」タブの「挿入」「コマンドボタン(ActiveXコントロール)」を選択してください。

矢印下001

vbabuttton012
vbabuttton013

ボタンを選択するとカーソルが十字に変化しますので、配置したい位置に表示範囲を指定してください。

コマンドボタンが表示されます。マウス右クリックメニューで「コードの表示」を選択します。

矢印下001

vbabuttton014
vbabuttton015

「コードの表示」を選択すると、「シートモジュール」が表示されます。

「コマンドボタンをクリックした場合」の ”空のコード” が表示されますので、

今回は、「Module1」から「クリアB」と「クリアC」プロシージャーを呼び出します。(複数呼び出しが可能になります。)

矢印下001

vbabuttton016
vbabuttton017

この時、エクセルシートでは、開発タブで「デザインモード」が選択状態になります。このモードでは、不用意にVBAが実行されないようになっています。

ボタンの題名を変更します。コマンドボタン上で右クリックメニューの「プロパティ」を選択します。

矢印下001

vbabuttton018
vbabuttton019

プロパティウインドウが表示されますので、「Caption」を「クリア」、「Font」をフォントダイアログでお好み選択します。

「FontColor」もお好みです。

矢印下001

仕上がりはこのようになりました。

 

今回設置したボタンでコマンドを実行する

 

フォームコントロールコマンドボタンを実際に押してみる

実行結果

vbabuttton021

正常にセットしたプロシージャー(マクロ)が実行されました。

 

ActiveXコントロールコマンドボタンを実際に押してみる

実行結果

vbabuttton022

こちらも正常にプロシージャーが実行されました。

 

クリアを実行するボタンを設置したいときの注意点

今回の例題として、シートをクリアするというケースを取り上げましたが、

注意しておいた方が良いポイントがあります。

同じワークシート上にクリアしたいデータと、ボタンを設置したケースで、

「画像」「図」などの挿入したオブジェクトも消去したい場合、

例題としてある「クリアE」プロシージャーで挿入オブジェクトを消すことになりますが、

コード
Sub クリアE()

With Worksheets("Sheet1")
    .DrawingObjects.Delete
End With

End Sub

これを実行すると、

設置した(コマンド)ボタンもろとも消去されてしまいます。

いわゆる「自爆スイッチ」になってしまいますので、十分注意してください。

フォームコマンドボタンの実行を「クリアE」に変更して実行すると・・・

実行結果

vbabuttton023

結果、見事に自爆しました。

 

コマンドボタンをシートに設置する方法のまとめ

 

この様に、マクロ(プロシージャー)実行ボタンを設置することは結構簡単です。

フォームコントロールコマンドボタンとActiveXコントロールコマンドボタンの違いは、

  • 指定できるプロシージャー数が、フォームの場合は1つ、ActiveXの場合は複数個
  • ActiveXの場合は、ボタンのプロパティを使える。またVBAコードを使ってカスタムできる。

という事かと思います。

 

ボタンを使って色々動きを設定するなら、

基本ユーザーフォームで行うのがメインになると思いますので、

シートにボタンを設置する場合、

多くのオプション機能を必要としないのなら、

簡潔に設置できるフォームコントロールの方がいいと思います。

 

MEMO

ワークシートへのオプションボタンの設置方法についてはこちらの記事を参考にできます。

エクセルワークシートへのオプションボタン設置方法の詳細と使い方のコツ

 

短期間でエクセルVBAの独学習得を目指したいなら

 

エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。

けれども、

出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。

独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。

先人が行った勉強方法をあなたがそのまま利用すればよいということです。

vbastudyeyecatch002 エクセルVBAを独学で習得する!ために大切な7つのポイントを解説します

独習のための大切な7つのポイントは、上記記事にて解説しています。

重要ワード

独習によるVBA習得のキーワードは、

出来るだけ多くの実例に触れること!

です。

正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。

ハッキリ言って、

本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、

手っ取り早く短期間習得できるというのは間違いないでしょう。

 

 

このサイトでよく使うVBAのコードのトピックを纏めています。

「VBA最速理解」の記事一覧を開く

 

今回の記事はここまでです。   最後までご覧いただき有難うございました。

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。