簡単なExcelVBAで「家計簿&資産管理ができる家計をまるっと管理」開発編①

マクロ開発

どうも!Komugiです

この記事では

「家計簿&資産管理ができる家計をまるっと管理」の

開発編(実際に作ってみよう)①です。

ご自分のスキルにしていただいて、転職が成功出来ますように!

開発編①を始める前に

この段階ではExcelにVBAのコードが書ける状態になっていることが必須です。
もしまだの場合は「Excelで「VBA」プログラミングができる状態を用意する!」を参考にExcelの設定をお願いします。

開発を行う前にシステム開発工程をご確認いただく場合はこちら
システム開発を行う工程はここから確認できます!

要件定義(何を作るか考えよう)がまだの方はこちら

詳細設計(どんなものがいるか考えよう)がまだの方はこちら

実際にプログラムコードを書く前に

プログラムの動きを再確認します

  1. 「メイン」シートの、C11セルからF11セルにデータを手入力
  2. 「追加」ボタンをクリック
  3. 「メイン」シートのC11セルからF11セルのデータを「家計簿」シートの最終行に転記

どのようにコードを書くかをイメージします

どのようにコードを書くかイメージしていきましょう。
プログラムの動きを理解し、イメージをコードに落とし込むことで、よりスムーズに開発を進めていけます。

プロシージャとは
  Sub ○○()~End SubまたはFunction ○○()~End Functionなどの、
  マクロの実行単位です。
モジュールとは
  プロシージャを書く場所です。

ステップ① モジュールの名称を変更
ステップ② プロシージャを記述
ステップ③ 変数を決定

上記のステップ①からステップ③を「開発編①」としてお伝えします。
ここまでで、プログラムを構成する基本的な準備が整います。

次は、プログラムの動きをイメージし、それぞれのステップをコードとして具体化していきます。
以下のステップは別でで詳しく解説いたします。

ステップ④ Excelシートを変数に代入
ステップ⑤ 「家計簿」シートの最終行の1行下を取得
ステップ⑥ 「メイン」シートの入力データを「家計簿」シートの最終行に転記
ステップ⑦ 完了メッセージを表示

合計でステップ⑦に分けて、コードを書いていきます。
それぞれのステップをしっかりと理解し、進めていくことで、プログラムは思い描いた通りに動くようになります。

まずは開発編①の始まり始まり!

よーしがんばるぞ〜!

開発編①

ステップ①「モジュール名称を変更」しましょう

「Excelで「VBA」プログラミングができる状態を用意する!」で、すでに挿入済みの「標準モジュール」の「Module1」に、家計簿と資産管理ができるコードを書き込む準備をしましょう。
現在のモジュール名は「Module1」ですが、家計簿のコードを書いていくことがわかるように、名前を「Mod_house」に変更します。

Mod_house

モジュール名をわかりやすくすることで、モジュールの数が増えても、どのモジュールに何のコードが書いてあるのかをすぐに区別できるようになります。
これにより、モジュールの管理が簡単になり、プロジェクトがよりスムーズに進行します。

ステップ②「プロシージャを記述」しましょう

プロシージャとは
  Sub ○○()~End SubまたはFunction ○○()~End Functionなどの、
  マクロの実行単位です。
サブルーチンとは
  「Sub」の後ろにつける名前が、「サブルーチン」の名前です。
  この名前を使って、「追加」ボタンよりプログラムを呼び出すことができます。
モジュールとは
  コードを書く場所です

「プロシージャ」「Sub」から「End Sub」です。「コードブロック」とも言います。
以下に記載のある「Sub AddDataToHouseholdAccount()」をコピーし、「Mod_house」モジュールにペーストし「Enter」を押して下さいk。
そうすると自動的に「End Sub」が表示されます。

Sub AddDataToHouseholdAccount()

「サブルーチン」の名前は「AddDataToHouseholdAccount」です。
このサブルーチンの名前を使って、「メイン」シートの「追加」ボタンより、モジュールを呼び出してプログラムを実行します。

ステップ③「変数を決定」しましょう

変数とは、プログラミングにおいてデータを一時的に保存するための入れ物です。
VBAに限らず、すべてのプログラミング言語で使用されています

変数の詳しい内容は基礎(変数編)でご確認下さい!

変数の書き方は

「Dim 変数名 As データ型名」

もしくは

「Dim 変数名1 As データ型名, 変数名2 As データ型名」

と記述します。

今回は以下の変数をプロシージャ「Sub AddDataToHouseholdAccount()」の下にコピペして下さい。

Dim wsMain As Worksheet
Dim wsHousehold As Worksheet
Dim nextRow As Long

では、変数の内容を詳しく解説します。

Dim wsMain As Worksheet
 データ型:Worksheet(ワークシート)
 役割: 「メイン」シートを参照するための変数です。
    この変数を利用することで、「メイン」シート上の
    特定のセルからデータを取得したり、
    シート上の操作を行うことができます。
Dim wsHousehold As Workshee
 データ型: Worksheet(ワークシート)
 役割: 「家計簿」シートを参照するための変数です。
    この変数を介して、「家計簿」シートへのデータ転記や
    セル操作を行います。
Dim nextRow As Long
 データ型: Long(長整数)
 役割: 「家計簿」シートの次に空いている行番号を格納するための変数です。
    この値を利用して、データを書き込む行を決定することができます。

追記後のモジュールは以下のようになります。

変数の記述位置が、Subより段落が下がっているのがわかりますでしょうか?
コードを書く際の基本ルールです!

インデントを使用する
  Subステートメントが一番の大枠になるため、
  変数やコードをを記述する際には、
  インデントを使って一段落下げて書いてください。
  これにより、コードが見やすく整理されます。

一塊として記述する
  関連するコードは、段落をつけて1つの塊としてまとめて書くことが大切です。
  これにより、後からコードを見直すときに、
  その部分が何をしているのかを理解しやすくなります。
  
これらのルールを守ることで、コードの読みやすさや、今後違う人が見た時もわかりやすく、長期的にコードを管理しやすくなります。

開発編①のまとめ

ここまでの内容について、ご理解できましたでしょうか。
モジュールの名称変更、プロシージャの作成、そして変数の設定について詳しく解説しました。
これらの基本を何度も見直すことで、理解が深まるだけでなく、プログラミングに対する自信も増えてきていることと思います。
プログラミングは、一つ一つのステップを丁寧に理解していくことがとても大切です。
それにより、今後のスムーズな開発につながっていきます。
次のステップとして「開発編②」もぜひご覧ください。
さらに学習することで、あなたのスキルが一層強化され、転職成功出来ること間違いなしです。

最後まで見ていただき有難うございます。引き続きプログラミングの素晴らしさをお伝えさせていただきます!

コメント

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