エクセル VBAのセルデータ並び替えのボタンを設置します。
ユーザーフォームでデザインしていきます。
コマンドボタン、オプションボタン、テキストボックスなどを使用します。
こんにちは じゅんぱ店長 (@junpa33) です。
セルのデータを操作する並び替え(ソート)は、標準機能として元からエクセルに搭載されています。
今回は、この標準搭載のツールを使わずに、エクセルVBAマクロで並び替えを実行できるようにします。
インターフェイスはユーザーフォームを利用して、並び替え操作をコントロールするボタンを設置します。
エクセルシート上に、フローティング状態で現れているユーザーフォームに設置されたボタンによって、「自由度の高いデータ並び替え」が出来るように、を、考えます。
まず最初に、ユーザーフォームにコントロールを配置するデザイン--いわゆる ”箱” 作り--を行っていきます。
使い易そうかどうかは、主観も含めてそれぞれ個人でご判断ということでよろしくお願いします。
並び替えマクロ 記事階層
- マクロツール使い方と無料ダウンロード
- マクロツール作成手順
- 並び替えマクロを作成するVBAコードの概要
- 条件設定ボタンとボックスを配置するユーザーフォームのデザイン
- UserFormに設置したコントロールのイベントコードを記述する
- 別シートにまたぐのは可能?並び替えのコード設計
- 条件入力用のユーザーフォーム 表示・非表示と値の保存
- セル範囲内の空白行や結合にも対応したSortオブジェクトVBA
- 複数列に自由にキーを設定するVBA。Sort条件設定のコード
- 複数の背景色キーを指定できるVBAコードの組み立て
- 種類の違うKeyの同時指定はどちらが優先?VBAでは記述順
- 共有できない問題も解決!ユーザー設定リストの外部ファイル導入法
- 複数条件をまとめるプロシージャーを作成する
- 結果の切り出し機能 必要範囲をコピーし別シートに張付け
- 簡単に並びを解除するリスタート機能。再実行も即可能になる
- 並び替えマクロツール作成の全コード集
- 並び替えマクロを作成するVBAコードの概要
- 実際に使ってみる
この記事番号は1番です。
コンテンツ
並び替えボタンの使い易さ=「設置場所」+「出来る内容」
エクセル VBA マクロで並び替えボタンを設置する。
もちろんそれは、並び替え作業の操作性を上げるためです。まず、何処に設置するかです。
エクセルシート上に設置しますか?・・・
それでは、そのシートでしか使えません。またセルがつぶれて邪魔になります。
エクセルリボン上でマクロ登録でボタンを設置しますか?・・・
それでは、エクセル標準機能を使った方が便利です。
利便性と視覚視認性を加えて考えると現状はユーザーフォームでということになります。
折角、ユーザーフォームを利用するのなら、色んな機能を搭載しようと、
- 並び替え範囲の選択自由度のUP(空白行を無視できる機能)
- 複数の背景色の並び替え機能
- 列データキーと背景色キーの複合並び替え
- 外部のユーザー設定リストのインポート
- 並び替え後データを、必要部分だけ別シートへの切り出しできる機能
- 一定の条件下での並び替え取り消し(リスタート)機能
などを、付け加えてみました。
そして、完成品の ”箱(ユーザーフォーム) はコレです。
このユーザーフォームは「ソートナビゲーター」という名前です。
サイスとしては、4K画面サイズで作成していますので、1920X1080サイズのモニターですと全貌を表示することは出来ません。なので、スクロールボタンでの対応としています。
それでは、これより ” 箱 ” の作成を行っていきます。
各ボタン・パーツの配置手順
それでは、それぞれのボタンなどを配置していきます。
VBE(ビジュアルベーシックエディタ)上、ユーザーフォームモジュール「オブジェクトの表示」モードでは、非Visual化されたコントロールも表示されます。
ですので、設置パーツはこれがすべてとなります。
ユーザーフォーム ベースの設定
ベースとなるユーザーフォーム自身の設定はこのようになります。プロパティを変更します。
|
作業するモニターに合わせて、ScrollHeightを調整します。
①データ全体と並び替えデータの範囲指定エリア
データ全体のサイズの把握と、並び替え範囲の指定を行うコントロール部分です。
基本、ラベルはCaptionの入力と文字サイズだけでOKです。
|
コマンドボタンのプロパティは、オブジェクト名とCaptionを設定すれば最小限OKです。
|
「並び替えデータシート全体をチェック」ボタンと同様にプロパティを変更します。
|
ユーザーフォーム上に設置したオプションボタンは、「グループ」を作ってあげないとすべてが一体と見なされてしまいます。
つまり、ユーザーフォーム上のオプションボタンは1つしか「ON」にできなくなってしまいます。
|
|
|
|
|
|
|
「部分範囲指定実行」ボタンは今までのコマンドボタンと同じ、テキストボックスはほぼデフォルトです。
|
|
|
「範囲指定の罫線は不要なら、消去します」コマンドボタンも既出のボタンと同様です。
|
②並び替えキーの設定エリア
並び替えのキーを設定するコントロール部分になります。少し細かくボタン配置をすることになります。
「データ範囲の先頭行は」の文字表示自体はラベルで表示しています。
オプションボタンによって、見出しか見出しではないかの選択をします。この2つのボタンでグループを組みます。
|
|
|
「並び替え列」のテキストボックスは同じ設定になります。
|
同様に、
並び替え列2のテキストボックス |
|
並び替え列3のテキストボックス |
|
「昇順」「降順」オプションボタンは並び替え列ごとのグループになります。
|
|
|
同様に
並び替え列2の「昇順」 |
|
並び替え列2の「降順」 |
|
並び替え列3の「昇順」 |
|
並び替え列3の「降順」 |
|
並び替え列単位の設置です。
|
|
|
同様に
並び替え列2の「列2確定」 |
|
並び替え列2の「列2消去」 |
|
並び替え列3の「列3確定」 |
|
並び替え列3の「列3消去」 |
|
「背景色選択」のテキストボックスは同じ設定になります。
|
同様に
背景色選択2のテキストボックス |
|
背景色選択3のテキストボックス |
|
「昇順」「降順」オプションボタンは並び替え列ごとのグループになります。
|
|
|
同様に
背景色選択2の「昇順」 |
|
背景色選択2の「降順」 |
|
背景色選択3の「昇順」 |
|
背景色選択3の「降順」 |
|
背景色選択単位の設置です。
|
|
|
同様に
背景色選択2の「色2確定」 |
|
背景色選択2の「色2消去」 |
|
背景色選択3の「色3確定」 |
|
背景色選択3の「色3消去」 |
|
③ユーザー設定リスト・並び替え優先選択エリア
ユーザー設定リストの適用やキーの優先方法をコントロールする部分です。
「並び替えにユーザー設定リストを使用」オプションボタンも「使う」「使わない」の2択のオプションボタンとなります。
|
|
|
オプションボタンの「ユーザー設定リスト使う」が「ON」の時、この「ユーザー設定リスト」フレームを可視化し、「OFF」の時不可視となるようにします。
|
ユーザー設定リストを各列キーに設定するかどうかを設定します。
|
|
|
同様に
ユーザー設定リスト並び替え列2 ON |
|
ユーザー設定リスト並び替え列2 OFF |
|
ユーザー設定リスト並び替え列3 ON |
|
ユーザー設定リスト並び替え列3 OFF |
|
列キー・色キー・複合の3択のオプションボタンの設定です。
|
|
|
|
|
「複合キーでの並び替え」オプションボタンを「ON」にした時に表示されるフレームです。
|
列・色の優先を選択します。
|
|
|
「並び替え実行」コマンドボタンの設定です。
|
④データ切り出し、リスタート機能エリア
並び替え後の操作をコントロールする部分になります。
「並び替えデータ切り出し機能」のラベルはラベル上でクリックするとデータ数値を表示するようにします。
|
|
|
「切り出し実行」コマンドボタンのプロパティ設定です。
|
並び替えを元に戻す機能です。先頭行が見出しかどうかの2択を設定します。
|
|
|
「切り出し実行」コマンドボタンのプロパティ設定です。
|
その他のテキスト(文字)表示
その他の文字表示については、ラベルを使って表示します。
プロパティ設定としては、Captionの項目に表示させたい文言を記述します。
並び替えのボタンをユーザーフォームに設置する まとめ
ユーザーフォームのデザインは多様です。
今回は、設定項目も細かくたくさんありましたので、ユーザーフォームのサイズも大きくなりました。
ユーザーフォーム上のコントロール配置は自由ですので、自分なりに使い易いように変更していただくことも可能です。
ご自分のアイデアで作ってみてください。
ユーザーフォーム「ソートナビゲーター」に設置したコントロールのイベントコードの解説についてはこの記事をご覧ください。
UserFormに設置したコントロールのイベントコードを記述するエクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。