VBAユーザーフォームで在庫管理アプリ感をだす 【VBA在庫管理#05】

Excel VBA 部品在庫管理アイキャッチ画像部品在庫管理

どうもoReです。どうもoReです。2回言ってみました、どうもoReです。 あっ…

今回は、ユーザーフォームを使用して部品在庫管理のアプリ感をだしていきます。

  ↓現在こんな感じになってます。

Mainに部品編集表示ボタン挿入

が、まだまだ先のお話です。

 

FormFomeと書いておりました(*ノωノ)
a様、ありがとうございます。

 

UserFome× UserForm○ 作成

UserFome UserForm ユゥーザァフォーム

Userは、『使用者』という意味みたいです。

Fome Formは、『形』という意味みたいです。

ちなみに、

・Fome フォーミー

ポルトガル語で、『空腹』という意味みたいですね。
フォーミーフォーミー言ってたら、誰か飯おごってくれそうですw

ただ、スペインで言ったら殴られそうですw

スペイン語では、『くだらねー』とか『退屈』という意味みたいです。

以下 FomeからFormへ変更してあります。

 

・VBA内の赤枠内で右クリ挿入ユーザーフォーム

フォーム挿入

 

ユーザーフォームを挿入できましたか?

ユーザーフォーム画像

 

ツールボックス内のコマンドボタンをクリックして
ユーザーフォーム上にコマンドボタンを配置しましょう。

フォームコマンドボタン配置

コマンドボタンの文字や色は、変更したいコマンドボタンを選択し、
左下のプロパティの所で変更します。

ユーザーフォームも、プロパティで好きにカスタマイズできます。

 

UserForm Show

・Show ショォゥ

Showは、『みせる』という意味みたいです。

 

作成したユーザーフォームを表示してみましょう。

VBA内のSheet1(データベース)ダブルクリックすると、
前回作成した在庫管理入出庫プログラムが表示されます。

フォーム表示プログラム

 

プログラムの一番下の所に、ユーザーフォームを表示させるプログラムを追加します。

Sub Hyouzi()
  UserForm1.Show
End Sub

 

  ↓こんな感じです。

Sub Hyouzi()
  ユーザーフォーム1を表示する
End Sub

 

Sub プロシージャ名()
  実行プログラム
End Sub

 

プロシージャ名とは、プログラム名みたいなものです。

※プロシージャ名は、わかりやすい名前をつけましょう。

 

そしたら、Excel画面に移動し

・デザインモード挿入ボタン(フォームコントロール)
をクリックしてExcel上にボタンを挿入します。

フォーム表示ボタン作成

 

挿入すると、作成したマクロ名(プロシージャ名)が一覧に表示されるので、
先ほど作成した在庫管理用のユーザーフォームを表示させるプロシージャ名を選択し
OKをクリックします。

 

デザインモードを解除して、今作成したボタンをクリックしてみましょう。

作成した在庫管理用のユーザーフォームが表示されましたか?

フォーム表示

※ボタンのテキストを変更する場合は、
ボタン上で右クリテキストの編集で変更できます。

 

図形にマクロの登録

Excelで図形を使用したりしますよね?
その図形をボタンとして使うこともできるようです。

 

・図形を挿入図形上で右クリマクロの登録作成したマクロ名(プロシージャ名)
を選択してOKをクリックする。

図形マクロ登録

 

TextBox

・TextBox テェクストゥボォクス

Textは、『文字』という意味みたいです。

Boxは、『箱』という意味みたいです。

 

バーコードデータをセルA1に入力していましたが、
ユーザーフォーム上にバーコードデータを入力するようにします。

 

ツールボックス内のテキストボックスをクリックし、
ユーザーフォーム上にテキストボックスを配置します。

フォームテキストボックス配置

 

UserForm上のCommand Buttonへプログラム移行

前回作成したプログラムは、Sheetモジュールでプログラミングし、
Excelシート上で入出庫処理していました。

今回は、ユーザーフォーム上で入出庫処理させたいので
ユーザーフォームにプログラミングしていきます。

 

・ユーザーフォーム上のコマンドボタン1をダブルクリックします。

フォームコマンドダブルクリック

 

ユーザーフォームのコードに、自動でコマンドボタン1クリックの
プロシージャが作成されます。

 

Sheet1(データベース)に書いたコマンドボタン1クリックの
コードをコピーします。

プログラムコピー

 

ユーザーフォームのコマンドボタン1クリックのプロシージャに貼り付けます。

プログラム貼り付け

コマンドボタン2も同様に作成したください。

作成後、Sheet1(データベース)に書いたコードは消してください。
※フォーム表示プロシージャは消さないように。

あと、Excelシート上のコマンドボタンも消してください。
※デザインモードにすることを忘れずに。

 

在庫管理入出庫プログラム手直し

現在、検索対象がセルA1となっています。

Set Knskcell = Range("C:C").Find(what:= Range("A1"), lookat:=xlWhole)

 

なので、セルA1の所をテキストボックス1へ変更します。

Set Knskcell = Range("C:C").Find(what:= TextBox1, lookat:=xlWhole)

 

ユーザーフォームを表示させ、テキストボックスに
バーコードデータを入力して動作確認してみてください。

ちゃんと入出庫できてますか?

フォーム入力確認

 

まとめ

ユーザーフォームを作成すると、『アプリ感』増し×2になりますよね!?(笑)

どんどんカスタマイズしていきましょう。

ましまし

次回 入出庫履歴がほしいね

ExcelVBA部品在庫管理【目次】へ戻る

コメント

  1. a より:

    わざとだとは思いますが、「UserForm」を「UserFome」と表記するなら、プログラムの「UserForm」も「Fome」にした方が分かりやすいと思います。動かないと思いますが、、、

    • oReoRe より:

      a様
      はじめまして。
      コメントありがとうございます。

      >UserFome

      確認しました。
      いつからFomeなんだろうwww
      大変助かります!!

タイトルとURLをコピーしました