ユーザーフォームのListBoxに入出庫履歴を表示してみる 【VBA在庫管理#09】

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

台風19号が来てとても暇です、どうもoReです。

今回は、入出庫履歴をユーザーフォームに
表示してみたいと思います。

UserForm_Initialize

・Initialize イニィシャラァィズ

Initializeは、『初期化』するという意味みたいです。

 

ユーザーフォームを初期化(初期設定)する感じです。

ユーザーフォームを表示させたとき、
リストボックスに入出庫履歴を表示させたいので、
UserForm_Initializeを使用します。

Private Sub UserForm_Initialize()
    
  この間のプログラムが、ユーザーフォームが表示されたとき処理される
    
End Sub

 

Private Sub UserForm_Initialize()と書いてもいいですが、
楽な方法があります。

・オブジェクトの▼UserFormを選択

オブジェクトユーザーフォーム選択

 

・プロシージャの▼Initializeを選択

プロシージャイニシャライズ選択

 

Private Sub UserForm_Initialize()が挿入できましたか?
※Private Sub UserForm_Click()は使用しないので消してください。

イニシャライズ挿入完了

 

ListBox

・List リィストゥ ・Box ボォクス

Listは、『一覧表』という意味みたいです。

 

ListBoxとは、データを一覧(リスト)で表示させるものです。

・ツールボックスのリストボックスをクリックユーザーフォームに挿入

リストボックス挿入

 

ユーザーフォームにリストボックスを挿入できたら、
入出庫履歴をリストボックスに表示させていきます。

  ↓こちらの入出庫履歴ね

入出庫履歴画像

 

ListBox1.AddItem

・Add アドゥ ・Item アイタァム

Addは、『追加』という意味みたいです。

Itemは、『項目』という意味みたいです。

 

リストボックスにデータを登録する場合

ListBox1.AddItem  登録するデータ(追加する項目)

  ↓ためしにこう書いてみました。

'ユーザーフォーム初期化
Private Sub UserForm_Initialize()
  ListBox1.AddItem Worksheets("入出庫履歴").Range("B3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("C3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("D3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("E3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("F3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("G3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("H3")
  ListBox1.AddItem Worksheets("入出庫履歴").Range("I3")
End Sub

 

さて、どう表示されたかしら?

リストボックスこれじゃない

 

これじゃない感、満載!!(笑)

 

ListBox1.ColumnCount

・Column カァラァム ・Count カァゥントゥ

Columnは、『柱』という意味みたいです。

 

だが断る!!『列』にします。

 

柱って、縦にまっすぐ立ってるじゃない!?
だから、縦軸(列)はColumnらしいです。

Rowは行でしたよね?

Columnは列です。

 

リストボックスの列数を指定する場合

ListBox1.ColumnCount = 列数

入出庫履歴はセルB列からセルI列まであるので、
リストボックスの列数は8列とします。

ListBox1.ColumnCount = 8

 

ListBox1.List

AddItemは、1つのデータを登録しますが、
Listは複数のデータを登録できます。

ListBox1.List = 登録するデータ(複数)

とりあえずセルB3からセルI3まで、Range(“B3:I3”).Valueとします。

Value ヴァリュゥーは値です。

詳しくはググってね。

ListBox1.List = Worksheets("入出庫履歴").Range("B3:I3").Value

 

  ↓このように書いて表示してみましょう。

'ユーザーフォーム初期化
Private Sub UserForm_Initialize()
  ListBox1.ColumnCount = 8
  ListBox1.List = Worksheets("入出庫履歴").Range("B3:I3").Value
End Sub

 

このように表示されましたか?

リストボックス列表示

oReのぞき見

ListBox1.ColumnWidths

Widths  ウィドゥズ

Widthsは、『幅』という意味みたいです。

 

列の幅を指定する場合

ListBox1.ColumnWidths = "1列目幅;2列目幅"

 

表示されたリストボックスを見て調整してみましょう。

'ユーザーフォーム初期化
Private Sub UserForm_Initialize()
  ListBox1.ColumnCount = 8
  ListBox1.ColumnWidths = "90;40;20;100;100;100;20;30"
  ListBox1.List = Worksheets("入出庫履歴").Range("B3:I3").Value
End Sub

 

まとめ

それでは、入出庫履歴をすべて表示してみましょう。

入出庫履歴は、セルB3からセルI8までなので、Range(“B3:I8”).Value
となります。

'ユーザーフォーム初期化
Private Sub UserForm_Initialize()
  ListBox1.ColumnCount = 8
  ListBox1.ColumnWidths = "90;40;20;100;100;100;20;30"
  ListBox1.List = Worksheets("入出庫履歴").Range("B3:I8").Value
End Sub

 

リストボックスすべて表示

やだ、ステキ!!

oReステキ

まとめ

UserForm_Initialize() 初期化(初期設定)
ListBox データを一覧(リスト)で表示させる
ListBox1.AddItem 登録するデータ
ListBox1.ColumnCount = 列数
ListBox1.List = 登録するデータ(複数)
ListBox1.ColumnWidths = “1列目幅;2列目幅~”

たぶん気付いていると思いますが、入出庫履歴は増えていきます。

このままでは、ダメですよね?

バーコードリーダー説03

次回 入出庫履歴、どがんかせんといかん!!

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

コメント

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