今回で、雑誌バックナンバー検索ツールの完成です。
最終は、エクセルVBAを操作するユーザーフォームの作成とデザインについてです。
みなさんも最初からもう一度見直してみて、さらに「手になじむ」VBAコードにカスタマイズしてみてください。
こんにちは、じゅんぱ店長(@junpa33)です。
今回も先回の記事の続きです。「雑誌バックナンバー検索.xlsm」を作成していきます。
今回が最終回となります。VBAを起動させるユーザーフォームをデザインして行きます。
先回の記事の読み直しはこちらから>>>
検索条件を受け付けるVBAコードを組み立てる。雑誌バックナンバー検索エクセル
バックナンバー検索表作成に関連した記事はこちらになります。
コンテンツ
VBAを起動させるユーザーフォームをデザインします
前回の記事では、検索に関するVBAコードを作成しました。
今回はこのVBAをコントロールするための
- 検索キーワード入力を行うテキストボックス
- 検索の起動ボタン
- 検索環境の操作ボタン
をユーザーフォームで作成します。
ユーザーフォームの名称を「検索コントロールパネル」とします。
ユーザーフォームに各コントロールを設置する
今回はユーザーフォームを使いますので、まずユーザーフォームを挿入してください。
以前にも使いましたが、
ユーザーフォームの挿入方法の確認はこちらから↓
ユーザーフォームとコントロールについてはこちらの記事も参考にできます。
「検索コントロールパネル」と名前を付けます
挿入したユーザーフォームを適当に広げてください。
ユーザーフォームのプロパティウインドウを表示して
- (オブジェクト名)を「検索コントロール」
- Captionを「検索コントロールパネル」
とします。
- ツールボックスで「A」のラベルボタンでフォームの上部に「検索コントロールパネル」というラベルを設置してください
「検索コントロールパネル」の表示タイミングを設定します
この「検索コントロールパネル」の表示について、
”エクセルBOOKを開いたとき” と ”「検索結果」を開いたとき” に表示されるようにします。
プロジェクトエクスプローラーの「ThisWorkbook」のコードウインドウで
以下のコードを記述してください。
コード⑫
Private Sub Workbook_Open()
If 検索コントロール.Visible Then Exit Sub
検索コントロール.Show vbModeless
End Sub
同様にプロジェクトエクスプローラーの「Sheet1(検索結果)」のコードウインドウで
以下のコードを記述してください。
コード⑬
Private Sub Worksheet_Activate()
If 検索コントロール.Visible Then Exit Sub
検索コントロール.Show vbModeless
End Sub
期間検索入力部分の設置をします
検索期間の入力に関しての設定です。
ツールボックスで「A」のラベルボタンとテキストボックスとコマンドボタンで作成していきます。
- 検索期間(年) 〇〇年から 〇〇年まで
- 年度の設定をしない場合はデータの全期間となります。
テキストボックスの(オブジェクト名)は
「期間年から」 「期間年まで」
Value についてはデフォルトで入っている値(空欄でもOKです)
- 検索期間(月) 〇〇月から 〇〇月まで
- 年度を跨ぎかつ月の期間を設定した場合は先年同月での検索が可能です。
- 1月から12月まで昇順で入力してください。
テキストボックスの(オブジェクト名)は
「期間月から」 「期間月まで」
Value についてはデフォルトで入っている値(空欄でもOKです)
- 検索期間(日) 〇〇日から 〇〇日まで
- 1日から31日まで昇順で入力してください。
テキストボックスの(オブジェクト名)は
「期間日から」 「期間日まで」
Value についてはデフォルトで入っている値(空欄でもOKです)
- 「期間入力ボタン」を設置します。
(オブジェクト名)を「期間入力」
Captionを「期間入力ボタン」 とします。
「検索コントロール」コードウインドウでの各入力データのコード設定は、
この様になります。
「期間入力ボタン」を押したときに各テキストボックスに入力した指定値が、変数に送られます。
コード⑭
Private Sub 期間入力_Click()
fdatey = 検索コントロール.Controls("期間年から").Value
tdatey = 検索コントロール.Controls("期間年まで").Value
fdatem = 検索コントロール.Controls("期間月から").Value
tdatem = 検索コントロール.Controls("期間月まで").Value
fdated = 検索コントロール.Controls("期間日から").Value
tdated = 検索コントロール.Controls("期間日まで").Value
End Sub
検索キーワードの入力ボックスの設定と設置
こちらもツールボックスで「A」のラベルボタンとテキストボックスとコマンドボタンで作成していきます。
雑誌名検索
- 雑誌検索名 〇〇
テキストボックスの(オブジェクト名)は「検索雑誌名」
Value についてはデフォルトで入っている値(空欄でもOKです)
- 「雑誌名検索ボタン」を設置します。
(オブジェクト名)を「雑誌名検索」
Captionを「雑誌名検索ボタン」 とします。
「検索コントロール」コードウインドウでの入力データのコード設定は、
この様になります。
コード⑮
Private Sub 雑誌名検索_Click()
myKEY = 検索コントロール.Controls("検索雑誌名").Value
Module2.雑誌名検索
End Sub
雑誌コード検索
- 雑誌コード 〇〇
- 0から始まるコードは0を無視4桁で
テキストボックスの(オブジェクト名)は「検索雑誌コード」
Value についてはデフォルトで入っている値(空欄でもOKです)
- 「雑誌コード検索ボタン」を設置します。
(オブジェクト名)を「雑誌コード検索」
Captionを「雑誌コード検索ボタン」 とします。
「検索コントロール」コードウインドウでの入力データのコード設定は、
この様になります。
コード⑮
Private Sub 雑誌コード検索_Click()
myKEYb = 検索コントロール.Controls("検索雑誌コード").Value
Module2.雑誌NO検索
End Sub
送品予定表転記、データまとめボタンほか作成
Module1、2で記述したSubの作動ボタンを設置します。
Module1 送品予定表転記・データをまとめる・送品予定表削除・データまとめクリア
Module2 検索結果クリア
「検索コントロール」コードウインドウでの各入力データのコード設定は、
この様になります。
コード⑯
Private Sub 送品取込_Click()
Module1.送品予定表転記
End Sub
Private Sub 送品まとめ_Click()
Module1.データをまとめる
End Sub
Private Sub 日々送品表削除_Click()
Module1.送品予定表削除
End Sub
Private Sub 送品まとめCR_Click()
Module1.データまとめクリア
End Sub
Private Sub 検索表示CR_Click()
Module2.検索結果クリア
End Sub
VBAを起動させるユーザーフォームをデザインするのまとめ
送品予定表の作成から発展させて、過去に何がどれだけ送品されたか客注がどれだけあって、
取り置きがどれだけあったかを調べることができるようになりました。
さらに販売管理ソフトを併用して、その時どこの顧客に販売したかもわかる様にもなります。
情報がどこまで必要かというところですが、このレベルの情報まではPOSでは調査不可能な部分かと思います。
当たり前のように日々の業務においては、色々な情報やデータが流れてきます。
そんな情報を上手く使えるか使えないかはその人の考え次第です。
どこまで精緻なデータが必要かにもよりますが、街の書店にとっては
恐らくは、自前加工のデータでも十分使える部分が多いかと思います。
それはまた情報取得も費用対効果で考えてゆくということに繋がっていきます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
初めてのVBAの勉強、構えなくても気軽に始められる。

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