VBAを起動させるユーザーフォームをデザインする。バックナンバー検索ツール

zassibackno3_1catch

今回で、雑誌バックナンバー検索ツールの完成です。
最終は、エクセルVBAを操作するユーザーフォームの作成とデザインについてです。
みなさんも最初からもう一度見直してみて、さらに「手になじむ」VBAコードにカスタマイズしてみてください。

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

 

今回も先回の記事の続きです。「雑誌バックナンバー検索.xlsm」を作成していきます。

今回が最終回となります。VBAを起動させるユーザーフォームをデザインして行きます。

 

先回の記事の読み直しはこちらから>>>

検索条件を受け付けるVBAコードを組み立てる。雑誌バックナンバー検索エクセル

 

バックナンバー検索表作成に関連した記事はこちらになります。

「バックナンバー検索表」の記事一覧を開く

 

VBAを起動させるユーザーフォームをデザインします

 

前回の記事では、検索に関するVBAコードを作成しました。

今回はこのVBAをコントロールするための

 

  1.  検索キーワード入力を行うテキストボックス
  2.  検索の起動ボタン
  3.  検索環境の操作ボタン

 

をユーザーフォームで作成します。

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

 

 

ユーザーフォームに各コントロールを設置する

borderex002a

 

今回はユーザーフォームを使いますので、まずユーザーフォームを挿入してください。

 

以前にも使いましたが、

ユーザーフォームの挿入方法の確認はこちらから↓

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

ユーザーフォームとコントロールについてはこちらの記事も参考にできます。

 

「検索コントロールパネル」と名前を付けます

 

挿入したユーザーフォームを適当に広げてください。

 

ユーザーフォームのプロパティウインドウを表示して

  • オブジェクト名)を「検索コントロール」
  • Captionを「検索コントロールパネル」

とします。

  • ツールボックスで「A」のラベルボタンでフォームの上部に検索コントロールパネル」というラベルを設置してください

backnoken3001a

 

「検索コントロールパネル」の表示タイミングを設定します

 

この「検索コントロールパネル」の表示について、

エクセルBOOKを開いたとき” と ”「検索結果」を開いたとき” に表示されるようにします。

 

プロジェクトエクスプローラーの「ThisWorkbook」のコードウインドウ

以下のコードを記述してください。

コード⑫

Private Sub Workbook_Open()
    If 検索コントロール.Visible Then Exit Sub
    検索コントロール.Show vbModeless
End Sub

backnoken3003a

 

同様にプロジェクトエクスプローラーの「Sheet1(検索結果)」のコードウインドウ
以下のコードを記述してください。

コード⑬

Private Sub Worksheet_Activate()
    If 検索コントロール.Visible Then Exit Sub
    検索コントロール.Show vbModeless
End Sub

backnoken3004a

 

期間検索入力部分の設置をします

 

検索期間の入力に関しての設定です。

 

ツールボックスで「A」のラベルボタンとテキストボックスとコマンドボタンで作成していきます。

  • 検索期間(年) 〇〇年から  〇〇年まで
  • 年度の設定をしない場合はデータの全期間となります。

テキストボックスの(オブジェクト名)は
「期間年から」 「期間年まで」
Value についてはデフォルトで入っている値(空欄でもOKです)

  • 検索期間(月) 〇〇月から  〇〇月まで
  • 年度を跨ぎかつ月の期間を設定した場合は先年同月での検索が可能です。
  • 1月から12月まで昇順で入力してください。

テキストボックスの(オブジェクト名)は
「期間月から」 「期間月まで」
Value についてはデフォルトで入っている値(空欄でもOKです)

  • 検索期間(日) 〇〇日から  〇〇日まで
  • 1日から31日まで昇順で入力してください。

テキストボックスの(オブジェクト名)は
「期間日から」 「期間日まで」
Value についてはデフォルトで入っている値(空欄でもOKです)

  • 「期間入力ボタン」を設置します。

(オブジェクト名)を「期間入力」
Captionを「期間入力ボタン」 とします。

 

 

backnoken3002a

 

「検索コントロール」コードウインドウでの各入力データのコード設定は、

この様になります。

「期間入力ボタン」を押したときに各テキストボックスに入力した指定値が、変数に送られます。

コード⑭

Private Sub 期間入力_Click()

    fdatey = 検索コントロール.Controls("期間年から").Value
    tdatey = 検索コントロール.Controls("期間年まで").Value
    fdatem = 検索コントロール.Controls("期間月から").Value
    tdatem = 検索コントロール.Controls("期間月まで").Value
    fdated = 検索コントロール.Controls("期間日から").Value
    tdated = 検索コントロール.Controls("期間日まで").Value
    
End Sub

backnoken3005a

 

検索キーワードの入力ボックスの設定と設置

 

こちらもツールボックスで「A」のラベルボタンとテキストボックスとコマンドボタンで作成していきます。

 

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

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

 

雑誌名検索

  • 雑誌検索名 〇〇

テキストボックスの(オブジェクト名)は「検索雑誌名」
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

backnoken3006a

 

送品予定表転記、データまとめボタンほか作成

 

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

backnoken3008a

backnoken3009a

 

 

VBAを起動させるユーザーフォームをデザインするのまとめ

borderex001a

 

送品予定表の作成から発展させて、過去に何がどれだけ送品されたか客注がどれだけあって、

取り置きがどれだけあったかを調べることができるようになりました。

さらに販売管理ソフトを併用して、その時どこの顧客に販売したかもわかる様にもなります。

情報がどこまで必要かというところですが、このレベルの情報まではPOSでは調査不可能な部分かと思います。

 

当たり前のように日々の業務においては、色々な情報やデータが流れてきます。

そんな情報を上手く使えるか使えないかはその人の考え次第です。

 

どこまで精緻なデータが必要かにもよりますが、街の書店にとっては

恐らくは、自前加工のデータでも十分使える部分が多いかと思います。

それはまた情報取得も費用対効果で考えてゆくということに繋がっていきます。

 

 

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

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

 

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

 

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

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

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

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

 

エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたい内容を纏めています。

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

 

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

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