
これまで、プログラミング学習としてVBAの基本的な使い方と読み書きについて学んできました。
これで、VBAの基本の学習は終わりです。
実はもう、簡単なマクロなら学習してきた知識を使えば作る事が出来ます。
でも、まだ1つもシステムを作ったことがない状態では少し不安だと思うので、ここで卒業試験(笑)をしてみようと思います。
VBAではじめてのシステムを作ってみよう
予約管理システムを作ってみよう
試験のお題は、「旅館の予約管理システム」です。
旅館にはたくさんの部屋があり、1部屋ずつその日の予約状況をチェックして新たに入った予約がブッキングしていないか確認する必要があります。
この「予約の管理」と「予約のブッキングチェック」がいっぺんに出来るシステムを作ってみましょう。
システムに実装したい機能
上の説明だけだと、とってもアバウトなのでどんな機能が必要なのか整理します。
■ほしい機能一覧
・新規の予約を追加できる
・1部屋ずつ予約状況を確認できる
・新規の予約を追加するとき、既に予約が入っていた場合「既に予約されています」とメッセージを出して予約できないようにする。
・★予約キャンセル機能を付ける(出来る人だけ)
■予約管理表のレイアウトの例
このシステムのレイアウトのイメージは下の画像を参考にしてください↓
予約日と部屋番号を入力して、「予約」ボタンが押されると表の中に○が追加されるようにしたいと思います。
難しい時は学習したことを振り返ってみよう
「なんか、難しいかも・・・」と思うかもしれませんが、大丈夫です。
これまで学習したことだけで全て作る事が出来ます。
学習してきたことをもう一度見返しながら、一気に作ろうとせず1つずつ機能を作ってみましょう。
システムは要件定義で機能が決まる!
また、このようにシステムに欲しい機能を洗い出したものを「要件定義」と言います。
大きなシステム開発になると、お客さんとこの「要件定義」をまとめることから始め、システムの設計書を作っていくことが多いです。
まずは思ったように作ってみよう!
軽い気持ちでまずは作ってみましょう。
こうするとどんな動きするんだろう?とか、実際に作っては動かしてみる事を繰り返してみましょう。
そうすることでどんどんプログラミングの理解が深まっていきます。
では、次回の記事で作り方の例を紹介するので、頑張って作ってみましょう!
作る時のポイント/ヒント
ここから下は、詰まってしまってどうしてもわからない時に参考にしてほしいヒントを書いていきます。
なので、必要のない方はすっ飛ばして、思ったようにガリガリ作っていきましょう。
1. 新規の予約を追加する/1部屋ずつ予約状況を確認できる
B3セルとC3セルに入る予約の情報を元に、表の中の当てはまる箇所に○を付けるような機能を考えてみます。
表を確認してみると、G列に日付、2行に部屋番号の情報が入っています。
さらに、部屋番号は1~5まであり、それぞれ下のように分けることが出来ます。
部屋1:2行目以降のH列
部屋2:2行目以降のI列
部屋3:2行目以降のJ列
部屋4:2行目以降のK列
部屋5:2行目以降のL列
という事は、受け取った情報のうち、部屋番号を確認すれば○をどこの「列」に入力すればいいかが決まります。
次に、どこの行なのかを考えます。
G列に日付があり、入力された予約日と同じ日付が入っている「行」を取得すれば行が決まりますね。
では、この行をどうやって見つけましょう。
部屋番号の時は5つしかなかったので、列を取得するのはカンタンでしたが、日付は沢山あります。
それに、1カ月の日付表とは限らないかもしれません。
なので、日付の行を一つ一つIF文などで比較するととんでもない行数のコードが出来てしまってあまりよろしくありません。
こんな時は繰り返し処理を使うといいかもしれません。
■参考記事
2. 新規の予約を追加するとき、既に予約が入っていた場合「既に予約されています」とメッセージを出して予約できないようにする。
1の処理が出来てしまえば、この処理を作るのはそこまで難しくはありません。
○を入力させるその前に、IF文を使って、入力するセルに○が入っていないか確認させます。
もし、○が入っていれば「既に予約されています」とメッセージを出して処理を抜けてしまいましょう。
■参考記事
3. 予約キャンセル機能
これについては、ヒントなしです!
急にスパルタになってしまいましたが、次回の記事で紹介したいと思います笑
■次のページ