データを操作するユーザーフォームの設置方法。VBA解説「雑誌と書籍の在庫表」

controleyecatcha

作成したExcelVBAをユーザーフォームからコントロールします。棚卸表「雑誌と書籍の在庫表」の作成の最終回です。
名称を「コントロールパネル」として、起動のためのPUSHボタンや切り替え用のトグルボタンなどを設置します。

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

 

今回も雑誌と書籍の在庫管理表のソフト(棚卸表)作成方法についてです。

今回が最終回となります。

 

在庫表作成で今まで作ってきたそれぞれのVBAコードを起動するため、

コントロールパネルをユーザーフォームで作成し起動ボタンを設置します。

 

「書誌棚卸表.xlsm」でユーザーモジュールに操作を行うVBAコードを記述します。

 

前の記事の確認をするにはこちら↓から。

利用後データをクリアーする適材適所のVBAコード。エクセル棚卸表作成をつくる。

 

「雑誌と書籍の在庫リスト」の完成形はこの記事をご覧ください。

【棚卸し】無料入手!在庫管理の「雑誌と書籍の在庫リスト」DLと取説

 

雑誌と書籍の在庫リスト作成に関連した記事はこちらになります。

「棚卸表作成」の記事一覧を開く

 

データを操作するユーザーフォームのデザインを考える

 

”設定”、”動作”と”消去”の3つの項目に分けてボタンを配置します。

  1.  ”設定”の項目では動作モードの切り替えボタンと基本情報の入力
  2.  ”動作”の項目では各ステップごとに動作ボタンを設置します。
  3.  ”消去”の項目では各シートごとにクリアーボタンを設置と一度にクリアーするボタンを設置します。

のデザインスタイルで作成していきます。

 

ユーザーフォームの設置方法とVBAコードの解説

souyosakuborder011a

 

ユーザーフォームの表示と表示タイミング

 

VBE(ビジュアルベーシックエディタ)からユーザーフォームボタンをクリックします。

 

設置方法の確認はこちらから確認できます。↓

ユーザーフォームを表示する

 

ユーザーフォームの名称を「コントロールパネル」とします。

 

「コントロールパネル」の表示設定については、

「書誌棚卸表.xlsm」OPEN時に表示されているようにします。

あと、「作業シート」のところでも記述しておきます。

 

”ThisWorkbook”のコードウインドウへの記述

「書誌棚卸表.xlsm」を開いたときに表示されます。ブックモジュールに記述します。

コード①

Private Sub Workbook_Open()

    If コントロールパネル.Visible Then Exit Sub
    コントロールパネル.Show vbModeless

End Sub

control001a

 

「作業シート」のコードウインドウへの記述

「作業シート」を開いたときにも表示します。シートモジュールに記述します。

コード②

Private Sub Worksheet_Activate()

    If コントロールパネル.Visible Then Exit Sub
    コントロールパネル.Show vbModeless

End Sub

control002a

 

ユーザーフォームの完成形

 

ユーザーフォームのの完成形はこのような感じになります。

control003a

 

ボタンサイズや設置のレイアウトなどは、操作には影響ないのでご自由にセットしてください。

ツールボックスで利用するボタンはこれです。

control006aa

ユーザーフォームのボタン設置

 

名前をコントロールパネルにする

まず最初にユーザーフォームの名称を「コントロールパネル」に変更します。

お好きな名前を付けて頂けますが、

その場合はここで書いているコード中の「コントロールパネル」すべてを同名に変更してください。

名前をセットするにはまず、

control004a

「プロパティウインドウ」を表示する必要があります。

「表示」メニューから

「プロパティウインドウ」をクリックしてください

 

 

control005a

 

この様に表示することができます。

 

 

 

プロパティウインドウの

  • オブジェクト名)を「コントロールパネル」にしてください。
  • ”Caption” を 「コントロールパネル」にしてください。

 

基本設定エリアについて

ここで設置するものは

  • ON・OFFのためのトグルボタンを設置します。
  • ラベルでトグルボタンの状態を表示します。
  • テキストボックスを設置します。
  • コマンドボタンを設置します。

です。

名称の「コントロールパネル」と「基本設定///////////」はラベルで作成してください。

 

「バーコードモード」ボタンはトグルボタンで作成します。

control007a

オブジェクト名)を「バーコードスイッチ」
”Caption” を 「バーコードモード」

にしてください。

文字色やベース色はお好みでセットしてください。

 

「バーコードモード」の状態を表示するにはラベルで作成します。

control008a

(オブジェクト名)を「モード」
”Caption” を 「OFF」

にしてください。

「OFF」にするのは、デフォルトがボタンが押されない状態にしたいためです。

 

 

「発行部署名」と「チェック場所名」の入力欄はテキストボックスで作成します。

control009a

「発行署名」は

(オブジェクト名)を「発行部署」
”Text” を 「発行部署名」

「チェック場所名」は

(オブジェクト名)を「調査場所」
”Text” を 「チェック場所名」

”Text”に記入した文字は、デフォルト表示となります。

文字サイズや文字色はご自由に設定してください。

 

「利用情報入力」ボタンはコマンドボタンで作成します。

control010a

オブジェクト名)を「利用入力」
”Caption” を 「利用情報入力」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

操作ボタンエリアについて

ここで設置するものは

  • コマンドボタンを設置します。

です。

名称の「動作ボタン///////////」はラベルで作成してください。

 

「データ移動」ボタンはコマンドボタンで作成します。

control011a

(オブジェクト名)を「データから作業」
”Caption” を 「データ移動データコピーから作業シートへ」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「データ加工1」ボタンはコマンドボタンで作成します。

control012a

(オブジェクト名)を「作業1」
”Caption” を 「データ加工1コードチェックと冊数」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「データ加工2」ボタンはコマンドボタンで作成します。

control013a

(オブジェクト名)を「作業2」
”Caption” を 「データ加工2重複削除・書名調査」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「作業シート連続データ加工」ボタンはコマンドボタンで作成します。

control014a

(オブジェクト名)を「作業連続」
”Caption” を 「作業シート連続データ加工」

にしてください。

文字色やベース色はお好みでセしてください。

 

 

「完成作表」ボタンはコマンドボタンで作成します。

control015a

(オブジェクト名)を「表完成」
”Caption” を 「完成作表」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

クリアボタンエリアについて

ここで設置するものは

  • コマンドボタンを設置します。

です。

名称の「クリアボタン///////////」はラベルで作成してください。

 

「コード入力クリア」ボタンはコマンドボタンで作成します。

control016a

(オブジェクト名)を「コード入力CR」
”Caption” を 「コード入力クリア」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「データコピークリア」ボタンはコマンドボタンで作成します。

control017a

(オブジェクト名)を「データコピーCR」
”Caption” を 「データコピークリア」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「作業シートクリア」ボタンはコマンドボタンで作成します。

control018a

(オブジェクト名)を「作業シートCR」
”Caption” を 「作業シートクリア」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「在庫表クリア」ボタンはコマンドボタンで作成します。

control019a

(オブジェクト名)を「在庫表CR」
”Caption” を 「在庫表クリア」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

「ALLクリア」ボタンはコマンドボタンで作成します。

control020a

(オブジェクト名)を「全クリア」
”Caption” を 「ALLクリア」

にしてください。

文字色やベース色はお好みでセットしてください。

 

 

ユーザーフォームのコードウインドウ

 

基本設定エリアのVBAコード

「バーコードモード」のトグルボタンと状態表示のラベルについてのコードです。

ボタンを押した時は 変数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

この様な感じです。

control021a

 

動作ボタンエリアのVBAコード

VBAコード参考記事
ここの説明で出てくるVBAコードの参考にしていただける記事です。

vbacalleyecatch Callステートメントはプロシージャーの部品化に必須項目 エクセルVBA最速理解

 

「データ移動データコピーから作業シートへ」ボタンのコードは「在庫情報コピー」を起動します。

コード③

Private Sub データから作業_Click()
    Module1.在庫情報コピー
End Sub

 

「データ加工1コードチェックと冊数」ボタンのコードは「書誌コードチェック」を起動します。

コード④

Private Sub 作業1_Click()
    Module1.書誌コードチェック
End Sub

 

「データ加工2重複削除・書名調査」ボタンのコードは4つのプロシージャーを順に起動します。

コード⑤

Private Sub 作業2_Click()
    Module2.項目表示
    Module2.書誌重複削除
    Module2.冊数合計マッチ
    Module2.書誌名挿入
End Sub

 

「作業シート連続データ加工」ボタンのコードはコード④とコード⑤のすべてのプロシージャーを順に起動します。

コード⑥

Private Sub 作業連続_Click()
    Module1.書誌コードチェック
    Module2.項目表示
    Module2.書誌重複削除
    Module2.冊数合計マッチ
    Module2.書誌名挿入
End Sub

 

「完成作表」ボタンのコードは「場所別在庫表」を起動します。

コード⑦

Private Sub 表完成_Click()
Module3.場所別在庫表
End Sub

 

この様な感じです。

control022a

クリアボタンのVBAコード

Module4に記述したプロシージャーの起動を行います。

 

「コード入力クリア」ボタンのコード

コード⑧

Private Sub コード入力CR_Click()
    Module4.コード入力表クリア
End Sub

「データコピークリア」ボタンのコード

コード⑨

Private Sub データコピーCR_Click()
    Module4.データコピークリア
End Sub

「作業シートクリア」ボタンのコード

コード⑩

Private Sub 在庫表CR_Click()
    Module4.在庫表クリア
End Sub

「在庫表クリア」ボタンのコード

コード⑪

Private Sub 作業シートCR_Click()
    Module4.作業シートクリア
End Sub

「ALLクリア」ボタンのコード

コード⑫

Private Sub 全クリア_Click()
    Module4.在庫表クリア
    Module4.作業シートクリア
    Module4.データコピークリア
    Module4.コード入力表クリア
End Sub

 

コードウインドウはこんな感じです。

control023a

 

データを操作するユーザーフォームの設置方法のまとめ

 

ユーザーフォームは言わばModuleで記述したプロシージャーを起動させるGUIです。

そのソフトを利用する人が使い易いデザインやレイアウトにすることが重要です。

そういった意味で、さらに自由なカスタマイズで

いつもの作業する上での使い勝手や操作の癖、習慣なども考慮いただければ

その人にとって間違いなくより良いものが作れると思います。

 

今回で、雑誌と書籍の在庫リスト「書誌在庫表.xlsm」の作成についての記事は終了です。

 

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

 

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

けれども、

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

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

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

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

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

重要ワード

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

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

です。

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

ハッキリ言って、

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

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

 

大村式【動画&テキスト】Excelマクロ&VBA最高のはじめ方
初めてのVBAの勉強、構えなくても気軽に始められる。
vbastudy020a
vbastudy021a

電子書籍版「大村式【動画&テキスト】Excelマクロ&VBA最高のはじめ方」をamazonで見てみる

(著者)大村あつし
(出版社)技術評論社
(税込価格)1,628円(本体1,480円+税)

学習書の新しい形です。
YouTubeと完全リンクした参考書です。入門と基礎を重点的に22本の動画で解説をしています。
ちょっとした空き時間を利用してでもスマホがあれば学習ができます。
動画は優しい語り口調で、視聴者にある意味安心感を与えてくれます。動画は5分から20分間ぐらいで22本の構成です。
文章解説と動画解説の関係性は、動画解説が主で、文章解説がサポートいう使い方もできます。

 

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

 

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

 

 

エクセルVBAを使いだして、始めのうちに知っておきたい内容を纏めています。

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

 

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

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