夏の連休最終日です、どうもoReです。
今回は、プログラムの手直しなどをしていきます。
と言うのも、前回作成した在庫管理入出庫プログラム面倒臭いんですよね
いろいろと
CommandButton プロパティ
前回こんな感じで作りました。
どちらのCommandButtonが、-1(出庫)か+1(入庫)か一目でわかりませよね。
作った本人であればわかりますが、第三者にはわかりません。
いや、作った本人でも怪しいです(笑)
一目でわかるようにしていきましょう。
・デザインモード→手直しするCommandButton選択→右クリ→プロパティ
→Caption(キャプション)を『CommandButton1』から『出 庫』へ変更
・BackColor(バックカラー)の▼→システム ボタンの表面選択→パレットで
好きな色に変更
これで第三者にもわかるようになりましたね。
やだっ!! ステキ
面倒臭くね!?
前回作成した在庫管理入出庫プログラムの、面倒臭いところですけど
例えば…部品を1000品目追加するとします。
Excelのデータベースに1000品目追加したあと、驚愕の事実に気づきます。
そうです!! 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
あなたは頑張って入力しますか?
私には無理です(笑)
プログラム手直し
前回作った在庫管理入出庫プログラムは、いまいちなので根本的に作り変えます。
・下記のように作り変えてください。
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を変更する。
前回作成した在庫管理入出庫プログラムは、くそ面倒臭い。
前回作った在庫管理入出庫プログラムが間違いか?
間違いではないですが、くそ面倒臭いだけです。
同じ処理をするのに、全然違うプログラム…
これって、面白くないですか?
次回 手直しプログラムのコード説明などなど
コメント