この在庫管理面倒臭いくね!?VBAプログラム変更 【VBA在庫管理#03】

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

夏の連休最終日です、どうもoReです。

今回は、プログラムの手直しなどをしていきます。

と言うのも、前回作成した在庫管理入出庫プログラム面倒臭いんですよね
いろいろと

CommandButton プロパティ

前回こんな感じで作りました。

Excel画像016

 

どちらのCommandButtonが、-1(出庫)+1(入庫)か一目でわかりませよね。

 

作った本人であればわかりますが、第三者にはわかりません。
いや、作った本人でも怪しいです(笑)

 

一目でわかるようにしていきましょう。

デザインモード手直しするCommandButton選択右クリプロパティ
 Caption(キャプション)を『CommandButton1』から『出 庫』へ変更

プロパティ画像01

 

BackColor(バックカラー)の▼システム ボタンの表面選択パレットで
 好きな色に変更

プロパティ画像02

 

これで第三者にもわかるようになりましたね。

Excel画像019

oReステキ

やだっ!! ステキ

 

面倒臭くね!?

前回作成した在庫管理入出庫プログラムの、面倒臭いところですけど

例えば…部品を1000品目追加するとします。

Excelのデータベースに1000品目追加したあと、驚愕の事実に気づきます。

oReびっくり

そうです!! VBAのプログラムも、1000品目分追加しなくてはいけません。

しかも、出庫処理に1000品目 入庫処理に1000品目追加ですよ!!

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
  ElseIf Range("A1") = "ore4" Then   ↓1000品目分追加
    Range("G9") = Range("G9") - 1
  ElseIf Range("A1") = "ore5" Then
    Range("G10") = Range("G10") - 1
        ↓省略
  ElseIf Range("A1") = "ore1003" Then
    Range("G1008") = Range("G1008") - 1
  Else
    MsgBox "部品登録されていません。"
  End If
End Sub
Private Sub CommandButton2_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
  ElseIf Range("A1") = "ore4" Then   ↓1000品目分追加
    Range("G9") = Range("G9") + 1
  ElseIf Range("A1") = "ore5" Then
    Range("G10") = Range("G10")  +1
        ↓省略
  ElseIf Range("A1") = "ore1003" Then
    Range("G1008") = Range("G1008") + 1
  Else
    MsgBox "部品登録されていません。"
  End If
End Sub
あなたは頑張って入力しますか?

 

oReのぞき見

私には無理です(笑)

 

プログラム手直し

前回作った在庫管理入出庫プログラムは、いまいちなので根本的に作り変えます。

・下記のように作り変えてください。

Private Sub CommandButton1_Click()
  Dim Knskcell As Range

  Set Knskcell = Range("C:C").Find(what:= Range("A1"), lookat:= xlWhole)
  If Knskcell Is Nothing Then
    MsgBox "部品が登録されていません。"
  ElseIf Knskcell = "" Then
    MsgBox "部品が登録されていません。"
  Else
    Knskcell.Offset(0, 4) = Knskcell.Offset(0, 4) - 1
  End If
End Sub
Private Sub CommandButton2_Click()
  Dim Knskcell As Range

  Set Knskcell = Range("C:C").Find(what:= Range("A1"), lookat:= xlWhole)
  If Knskcell Is Nothing Then
    MsgBox "部品が登録されていません。"
  ElseIf Knskcell = "" Then
    MsgBox "部品が登録されていません。"
  Else
    Knskcell.Offset(0, 4) = Knskcell.Offset(0, 4) + 1
  End If
End Sub

動作確認してみてください。

前回作った在庫管理入出庫プログラムと同じ処理をしてますか?

 

まとめ

CommandButtonの文字を変える場合
  プロパティから、Captionを変更する。
CommandButtonの色を変える場合
  プロパティから、BackColorを変更する。
前回作成した在庫管理入出庫プログラムは、くそ面倒臭い。

前回作った在庫管理入出庫プログラムが間違いか?

間違いではないですが、くそ面倒臭いだけです。

同じ処理をするのに、全然違うプログラム…
これって、面白くないですか?

oReピンチ

次回 手直しプログラムのコード説明などなど

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

コメント

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