【VBA学習】VBAで予約管理システムを作ってみよう

  • このエントリーをはてなブックマークに追加

これまで、プログラミング学習として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文などで比較するととんでもない行数のコードが出来てしまってあまりよろしくありません。

こんな時は繰り返し処理を使うといいかもしれません。

 

■参考記事

【VBA学習】分岐パターンが多い時に便利!Select Caseの使い方

【VBA学習】処理を繰り返したい時便利なFOR文の使い方

【VBA学習】繰り返し処理に便利なWhile文の特徴と使い方

 

2. 新規の予約を追加するとき、既に予約が入っていた場合「既に予約されています」とメッセージを出して予約できないようにする。

1の処理が出来てしまえば、この処理を作るのはそこまで難しくはありません。

○を入力させるその前に、IF文を使って、入力するセルに○が入っていないか確認させます。

もし、○が入っていれば「既に予約されています」とメッセージを出して処理を抜けてしまいましょう。

 

■参考記事

【VBA学習】IF文をさらに分岐させるElse・ElseIfの使い方

【VBA学習】セルの値を取得&セルに値を入れる2つの方法

 

3. 予約キャンセル機能

これについては、ヒントなしです!

急にスパルタになってしまいましたが、次回の記事で紹介したいと思います笑

 

■次のページ

【VBA学習】VBAで予約管理システムの作り方

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*