作成したExcelVBAをユーザーフォームでコントロールします。
利用者の操作性を考慮したデザインで作成しましょう。
トグルボタン、コマンドボタンなどを設置します。
こんにちは、じゅんぱ店長(@junpa33)です。
今回も雑誌と書籍の在庫管理表のソフト(棚卸表)作成方法についてです。
在庫リスト作成のために、今まで作ってきたそれぞれのVBAコードを起動するのに、
コントロールパネルをユーザーフォームで作成し起動ボタンを設置します。
「書誌棚卸表.xlsm」でユーザーフォームモジュールにVBAコードを記述します。
雑誌と書籍の在庫リスト(棚卸表)作成の記事編成
- 雑誌と書籍の在庫リストの使い方とダウンロード
- 書誌データベースのダウンロード
コンテンツ
データを操作するユーザーフォームのデザインを考える

”設定”、”動作”と”消去”の3つの項目に分けてボタンを配置します。
- ”設定”の項目では動作モードの切り替えボタンと基本情報の入力
- ”動作”の項目では各ステップごとに動作ボタンを設置します。
- ”消去”の項目では各シートごとにクリアーボタンを設置と一度にクリアーするボタンを設置します。
のデザインレイアウトで作成していきます。
ユーザーフォームの設置方法とVBAコードの解説

ユーザーフォームの表示と表示タイミング
VBE(ビジュアルベーシックエディタ)からユーザーフォームボタンをクリックします。
設置方法の確認はこちらからでも確認できます。↓
ユーザーフォームの名称を「コントロールパネル」とします。
「コントロールパネル」の表示設定は、
「書誌棚卸表.xlsm」が開かれた時に表示されているようにします。
また、「作業シート」が開かれた時でも表示されるように記述しておきます。
「書誌棚卸表.xlsm」を開いたときに表示されます。ブックモジュールに記述します。
Private Sub Workbook_Open()
If コントロールパネル.Visible Then Exit Sub
コントロールパネル.Show vbModeless
End Sub
「作業シート」を開いたときにも表示します。シートモジュールに記述します。
Private Sub Worksheet_Activate()
If コントロールパネル.Visible Then Exit Sub
コントロールパネル.Show vbModeless
End Sub
ユーザーフォームの完成形
作成するユーザーフォームの完成形はこちらです。

ボタンサイズや設置のレイアウトなどは、操作には影響ないのでご自由にセットしてください。
ツールボックスで利用するボタンはこちらです。

ユーザーフォームのボタン設置
まず最初にユーザーフォームの名称を「コントロールパネル」に変更します。
お好きな名前を付けて頂けますが、
その場合はここで書いているコード中の「コントロールパネル」すべてを同名に変更してください。
名前をセットするにはまず、「プロパティウインドウ」を表示する必要があります。
「表示」メニューから「プロパティウインドウ」をクリックしてください


プロパティウインドウの
- (オブジェクト名)を「コントロールパネル」にしてください。
- ”Caption” を 「コントロールパネル」にしてください。

この様に表示することができます。
ここで設置するものは
- ON・OFFのためのトグルボタンを設置します。
- ラベルでトグルボタンの状態を表示します。
- テキストボックスを設置します。
- コマンドボタンを設置します。
です。
名称の「コントロールパネル」と「基本設定///////////」はラベルで作成してください。
(オブジェクト名)を「バーコードスイッチ」
”Caption” を 「バーコードモード」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「モード」
”Caption” を 「OFF」
にしてください。
「OFF」にするのは、デフォルトがボタンが押されない状態にしたいためです。

「発行署名」は
(オブジェクト名)を「発行部署」
”Text” を 「発行部署名」
「チェック場所名」は
(オブジェクト名)を「調査場所」
”Text” を 「チェック場所名」
”Text”に記入した文字は、デフォルト表示となります。
文字サイズや文字色はご自由に設定してください。

オブジェクト名)を「利用入力」
”Caption” を 「利用情報入力」
にしてください。
文字色やベース色はお好みでセットしてください。

ここで設置するものは
- コマンドボタンを設置します。
です。
名称の「動作ボタン///////////」はラベルで作成してください。
(オブジェクト名)を「データから作業」
”Caption” を 「データ移動データコピーから作業シートへ」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「作業1」
”Caption” を 「データ加工1コードチェックと冊数」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「作業2」
”Caption” を 「データ加工2重複削除・書名調査」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「作業連続」
”Caption” を 「作業シート連続データ加工」
にしてください。
文字色やベース色はお好みでセしてください。

(オブジェクト名)を「表完成」
”Caption” を 「完成作表」
にしてください。
文字色やベース色はお好みでセットしてください。

ここで設置するものは
- コマンドボタンを設置します。
です。
名称の「クリアボタン///////////」はラベルで作成してください。
(オブジェクト名)を「コード入力CR」
”Caption” を 「コード入力クリア」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「データコピーCR」
”Caption” を 「データコピークリア」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「作業シートCR」
”Caption” を 「作業シートクリア」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「在庫表CR」
”Caption” を 「在庫表クリア」
にしてください。
文字色やベース色はお好みでセットしてください。

(オブジェクト名)を「全クリア」
”Caption” を 「ALLクリア」
にしてください。
文字色やベース色はお好みでセットしてください。

ユーザーフォームのコードウインドウ
ボタンを押した時は 変数CPに1を代入し、ラベルを「ON」の表示にします。
ボタンを外した時は 変数CPに0を代入し、ラベルを「OFF」の表示にします。
Private Sub バーコードスイッチ_Change()
If バーコードスイッチ.Value = True Then
CP = 1
モード.Caption = "ON"
Else
CP = 0
モード.Caption = "OFF"
End If
End Sub
「発行部署名」に入力された値は変数「ShopName」に代入します。
「チェック場所名」に入力された値は変数「SpaceName」に代入します。
Private Sub 利用入力_Click()
SpaceName = 調査場所.Value
ShopName = 発行部署.Value
End Sub
Private Sub データから作業_Click()
Call Module1.在庫情報コピー
End Sub
Private Sub 作業1_Click()
Call Module1.書誌コードチェック
End Sub
Private Sub 作業2_Click()
Call Module2.項目表示
Call Module2.書誌重複削除
Call Module2.冊数合計マッチ
Call Module2.書誌名挿入
End Sub
Private Sub 作業連続_Click()
Call Module1.書誌コードチェック
Call Module2.項目表示
Call Module2.書誌重複削除
Call Module2.冊数合計マッチ
Call Module2.書誌名挿入
End Sub
Private Sub 表完成_Click()
Call Module3.場所別在庫表
End Sub
Module4に記述したプロシージャーの起動を行います。
Private Sub コード入力CR_Click()
Call Module4.コード入力表クリア
End Sub
Private Sub データコピーCR_Click()
Call Module4.データコピークリア
End Sub
Private Sub 作業シートCR_Click()
Call Module4.作業シートクリア
End Sub
Private Sub 在庫表CR_Click()
Call Module4.在庫表クリア
End Sub
Private Sub 全クリア_Click()
Call Module4.在庫表クリア
Call Module4.作業シートクリア
Call Module4.データコピークリア
Call Module4.コード入力表クリア
End Sub
データを操作するユーザーフォームの設置方法のまとめ

ユーザーフォームは、Moduleで記述したプロシージャーを起動させるGUIです。
そのソフトを利用する人が使い易いデザインやレイアウトにすることが重要です。
そういった意味で、さらに自由なカスタマイズで
いつもの作業する上での使い勝手や操作の癖、習慣なども考慮いただければ
その人にとって間違いなくより良いものが作れると思います。
今回で、雑誌と書籍の在庫リスト「書誌在庫表.xlsm」の作成についての記事は終了です。
短期間でエクセルVBAの独学習得を目指したいなら

エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。
けれども、
出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。
独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。
先人が行った勉強方法をあなたがそのまま利用すればよいということです。

独習のための大切な7つのポイントは、上記記事にて解説しています。
独習によるVBA習得のキーワードは、出来るだけ多くの実例に触れること!です
正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。
ハッキリ言って、
本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、
手っ取り早く短期間習得できるというのは間違いないでしょう。


電子書籍版「大村式【動画&テキスト】Excelマクロ&VBA最高のはじめ方」をamazonで見てみる
(著者)大村あつし(出版社)技術評論社
(税込価格)1,628円(本体1,480円+税)
学習書の新しい形です。
YouTubeと完全リンクした参考書です。入門と基礎を重点的に22本の動画で解説をしています。
ちょっとした空き時間を利用してでもスマホがあれば学習ができます。
動画は優しい語り口調で、視聴者にある意味安心感を与えてくれます。動画は5分から20分間ぐらいで22本の構成です。
文章解説と動画解説の関係性は、動画解説が主で、文章解説がサポートいう使い方もできます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

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