ビールの飲みすぎでお腹の調子が悪い、どうもoReです。
前回作成した在庫管理入出庫プログラムの説明などをしていきたいと思います。
Excel マクロ有効ブックの開き方
Excel マクロ有効ブックを開くと、セキュリティーに引っ掛かります。
たかがExcelに、セキュリティーって…と、思うかもしれませんが
Excel VBAっていろんな事が出来ます。
例えばブックを開くと、パソコンのマイピクチャに保存されている
恥ずかしい写真をSNS等に拡散されるとか…嫌でしょう?(笑)
悪意あるプロのグラマーな方は、簡単に作れてしまいます。
まあ、自分で作ったものなら安心です。
・コンテンツの有効化をクリックするとマクロ(プログラム)が有効になります。
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以外実行プログラム 条件分岐終了 プログラム終了
なんとなくわかりますか?
条件にあったもの以外は、スルーされてしまいます。
まとめ
実行プログラム
ElseIf 条件式2 Then
実行プログラム
ElseIf 条件式3 Then
実行プログラム
Else
条件式1・2・3以外の実行プログラム
End If
条件分岐はよく使うので、是非マスターしたいですね。
次回 この在庫管理入出庫プログラム面倒臭くね!?
コメント