在庫管理VBAプログラムの説明などなど 【VBA在庫管理#02】

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

ビールの飲みすぎでお腹の調子が悪い、どうもoReです。

前回作成した在庫管理入出庫プログラムの説明などをしていきたいと思います。

Excel マクロ有効ブックの開き方

Excel マクロ有効ブックを開くと、セキュリティーに引っ掛かります。

たかがExcelに、セキュリティーって…と、思うかもしれませんが
Excel VBAっていろんな事が出来ます

例えばブックを開くと、パソコンのマイピクチャに保存されている
恥ずかしい写真をSNS等に拡散されるとか…嫌でしょう?(笑)

oRe恥ずかしい画像

悪意あるプロのグラマーな方は、簡単に作れてしまいます。

oReのぞき見

まあ、自分で作ったものなら安心です。

コンテンツの有効化をクリックするとマクロ(プログラム)が有効になります。

マクロ有効ブック開き方画像

 

Range(“A1”) = “こまけぇこたぁいいだよ!!”

・Range レンジ

Rangeは、『範囲』という意味みたいです。

 

前回、Range(“A1”) = “こまけぇこたぁいいんだよ!!”と入力して
プログラムを実行すると、セルA1に『こまけぇこたぁいいんだよ』
入力されました。

 

  ↓単純にこんな感じです。

Range("A1") = "こまけぇこたぁいいんだよ!!"
セルA1 ← こまけぇこたぁいいんだよ!!
セルA1に、こまけぇこたぁいいんだよ!!を入れる

 

では、セルB2に、こまけぇこたぁいいんだよ!!を入れる場合は

Range("B2") = "こまけぇこたぁいいんだよ!!"

となります。

 

ちなみに、数字をセルA1に入力させる場合は

Range("A1") = 1

 

違いがわかりますか?

そう!!  ←このダブルクォーテーションが有るか無いかです。

Range("A1") = "こまけぇこたぁいいんだよ!!"
Range("A1") = 1

 

・ダブルクォーテーション無しでプログラムを入力した場合

コンパイルエラー画像

コンパイルエラーとなります。

このことから、どうやら文字列ダブルクォーテーションで囲わないと
ダメみたいです。

 

条件分岐 If

・If イフ ・Then ゼン ・ElseIf エルスイフ ・Else エルス ・End If エンドイフ

Ifは、『もし』という意味みたいです。

Thenは、『その時』という意味みたいです。

Elseは、『そのほか』という意味みたいです。

Endは、『終了』という意味みたいです。

 

前回作成した在庫管理入出庫プログラムを説明していきます。

-1(出庫)処理として下記のようにプログラムしました。

Private Sub CommandButton1_Click()
  If Range("A1") = "ore1" Then
    Range("G6") = Range("G6") - 1
  ElseIf Range("A1") = "ore2" Then
    Range("G7") = Range("G7") - 1
  ElseIf Range("A1") = "ore3" Then
    Range("G8") = Range("G8") - 1
  Else
    MsgBox "部品登録されていません。"
  End If
End Sub

 

  ↓こんな感じです。

コマンドボタン1をクリックした時
  もし、セルA1が、ore1だった場合は←条件1
    セルG6に、セルG6のデータから、1を引いた値を入れる←条件1実行プログラム
  もし、セルA1がore1ではなく、ore2だった場合は←条件2
    セルG7に、セルG7のデータから、1を引いた値を入れる←条件2実行プログラム
  もし、セルA1がore1でもore2でもなく、ore3だった場合は←条件3
    セルG8に、セルG8のデータから、1を引いた値を入れる←条件3実行プログラム
  セルA1が、ore1・ore2・ore3ではなかった場合←条件1・2・3以外
    部品が登録されてません。のメッセージを出す←条件1・2・3以外実行プログラム
  条件分岐終了
プログラム終了

 

セルA1がore1だった場合の処理

・実行するプログラム

・実行しないプログラム

コマンドボタン1をクリックした時
  もし、セルA1が、ore1だった場合は←条件1
    セルG6に、セルG6のデータから、1を引いた値を入れる←条件1実行プログラム
  もし、セルA1がore1ではなく、ore2だった場合は←条件2
    セルG7に、セルG7のデータから、1を引いた値を入れる←条件2実行プログラム
  もし、セルA1がore1でもore2でもなく、ore3だった場合は←条件3
    セルG8に、セルG8のデータから、1を引いた値を入れる←条件3実行プログラム
  セルA1が、ore1・ore2・ore3ではなかった場合←条件1・2・3以外
    部品が登録されてません。のメッセージを出す←条件1・2・3以外実行プログラム
  条件分岐終了
プログラム終了

 

セルA1がore3だった場合の処理

・実行するプログラム

・実行しないプログラム

コマンドボタン1をクリックした時
  もし、セルA1が、ore1だった場合は←条件1
    セルG6に、セルG6のデータから、1を引いた値を入れる←条件1実行プログラム
  もし、セルA1がore1ではなく、ore2だった場合は←条件2
    セルG7に、セルG7のデータから、1を引いた値を入れる←条件2実行プログラム
  もし、セルA1がore1でもore2でもなく、ore3だった場合は←条件3
    セルG8に、セルG8のデータから、1を引いた値を入れる←条件3実行プログラム
  セルA1が、ore1・ore2・ore3ではなかった場合←条件1・2・3以外
    部品が登録されてません。のメッセージを出す←条件1・2・3以外実行プログラム
  条件分岐終了
プログラム終了

なんとなくわかりますか?
条件にあったもの以外は、スルーされてしまいます。

 

まとめ

文字列を入れる時は、“ ”←ダブルクォーテーションで囲う
If 条件式1 Then
  実行プログラム
ElseIf 条件式2 Then
  実行プログラム
ElseIf 条件式3 Then
  実行プログラム
Else
  条件式1・2・3以外の実行プログラム
End If

条件分岐はよく使うので、是非マスターしたいですね。

バーコードリーダー使い方

次回 この在庫管理入出庫プログラム面倒臭くね!?

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

コメント

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