オプションボタンをVBAコードのみでシート設置する

vbaopbtnformmatoeyecatch

オプションボタンをフォームコントロールタイプで、エクセルシートにVBAだけで設置します。
複数設置するので、他のコントロールよりも動作設定は少々複雑になります。

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

フォームコントロールのタイプを使用して、オプションボタンをシートに設置します。

VBAコードによって、ボタンを配置するところから行っていきます。

フォームコントロールを使うので、標準モジュールだけの記述で機能させることが出来ます。

オプションボタンのシート設置記事編成

オプションボタンをVBAのみで設置するメリット

vbaopbtnform028

エクセルシートにオプションボタンを簡単に設置する方法は、

リボンの「挿入」から「ツールボタン」で選択することが簡単で分かりやすいです。一通り設置作業を完了してから、値の取り出し加工をVBAで行うことになるでしょう。

ただし、この方法で行うボタン設置は、手作業なので修正変更も手作業になります。設置数が多い場合は大変です。

に対して、

一から設置をすべてVBAコードで行う場合は、プログラムの実行一発で完了です。

修正も、シート上で細かく作業する必要はありません。

ただし、VBAコードで、オプションボタンを設置したい位置に ” ピッタリ ” に置けるか、考え通りの動作をするか、などコード設計上の知識的不安も出てきます。

この知識的不安が解消されれば、メンテナンスも含めた利便性も大幅にアップするでしょう。

オプションボタンVBA設置の説明順序

vbaopbtnform029

シートが白紙の状態から、オプションボタンを設置、グループ化して、実用の設定、を段階的に説明して行きます。

コードの記述順が逆になると、うまく機能しなくなる部分もありますので、そこは注意して作業を行っていきます。

オプションボタン設置時作業時に発生するエラーとして、「コードの記述エラー」はもちろんですが、「存在しないオブジェクトを指定するエラー」も少なからずあります。

また、コードの記述順の違いによって、” エラーではないので停止せずに、何も実行されず終了する ” ことも起こります。まるで「On Error Resume Next」でエラースルーされてコード終了するようなことです。

以下の手順で、説明して行きます。

説明を積み重ねていくようになっていますので、途中からの記事読みでは、少し理解が難しいかもしれません。

2種類のオプションボタンと手作業でのシート設置

ActiveXコントロールとフォームコントロールの2種類のオプションボタンがあります。

それぞれの違いを、シートへの設置方法と動作させるVBAの記述方法の違いから説明しています。

VBAOptionbuttoneyecatch オプションボタンのシートへの設置方法の詳細と使い方のコツ

フォームコントロールのオプションボタンをシートへVBA設置

フォームコントロールのオプションボタンを、VBAコードでシートに設置する方法を説明します。

設置場所が「決まっている」場合と「決まっていない」場合があります。

両方のケースについて、「とりあえずオプションボタンをVBAで設置できる」ようにします。

オプションボタンの種類は、ActiveXではなくフォームコントロールを使用します。

vbaopbtnformeyecatch フォームのオプションボタンを静的・動的設置する

コントロール設置とエクセルのパフォーマンス

シートへ設置するコントロール数は多くなればなるほど、エクセルのパフォーマンスが低下します。

特にオプションボタンコントロールは、複数設置での機能発揮のためその要因をはらんでいます。

フォームコントロールは、ActiveXに比べてイベントを使わないので、多少なりともエクセル動作への負荷が軽減されると思われます。

オプションボタンで必要な2つのグループ分け

オプションボタンは、一つだけでは機能しません。複数個の設置が必要です。

では、シートに100個のオプションボタンを設置してみます。

vbaopbtnformGroupeyecatch オプションボタン 2つのグループ化の使い分け

オプションボタンは、それぞれの区分けや範疇でグループ化しておく必要があります。

①.シート上のデフォルト設定では、項目選択肢100個の中でいくつ選択可能でしょうか?答え「1つだけ」です。

全体で100個のオプションボタンの内、10個のボタンを削除する必要があります。

②.1個づつボタンを選択して「Deleteキー」を押していく方法が正解でしょうか?答え「いいえ」です。

  • 全部で100個のオプションボタンで、10個の選択肢を選べる様にするには、10ブロックのグループ分けをする必要があります。
  • 10ブロックをそれぞれ設置のグループ分けでグループ化すれば、グループを一度に削除することも可能です。

オプションボタンのクリック時の設定

設置したオプションボタンに、ボタン名や表示名、グループ名や戻り値のリンク先などを設定して実用できるようにします。

この設定は必須で重要な設定事項となります。

どうしたいかによっても、コード設計が変わる部分です。

vbaopbtnformsetteieyecatch オプションボタンの実用設定をVBAコード化する

オプションボタンを削除する

エクセルでは、コントロール(オプションボタンなど)は、図形描画と同じ「Shapeオブジェクト」扱いになります。

シート上では、セル値であれば、更新などで上書き修正されますが、シート上のコントロールは、そのようにはなりません。

今あるオプションボタンの修正目的で、ボタン設置のコマンドを再度実行すれば、上重ね(二重)でオプションボタンが設置されてしまいます。

つまり一度設置されたボタンを変更するためには、必ず一度削除してから再設置する必要が出てきます。

vbaopbtnformdeleyecatch シート上のオプションボタンを削除するVBAコード

まとめ

vbaopbtnform030

オプションボタンは、一か所設置では機能しないコントロールです。

他の種類のコントロール違って、動作を設定する時には行うべき内容の設定があります。

動作不良ともなりかねないので、必ず行うべき設定のチェックを行っておきましょう。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

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

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

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

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min