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

マクロ開発

どうも!Komugiです

この記事では

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

開発編②に引き続き開発編(実際に作ってみよう)③です。

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

開発編③を始める前に

簡単なExcelVBAで「家計簿&資産管理ができる家計をまるっと管理」開発編①がまだの方はこちら

簡単なExcelVBAで「家計簿&資産管理ができる家計をまるっと管理」開発編②がまだの方はこちら

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

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

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

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

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

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

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

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

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

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

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

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

ステップ④ Excelシートを変数に代入
ステップ⑤ 「家計簿」シートの最終行の1行下を取得

上記のステップ④からステップ⑤を「開発編」としてお伝えしました。
プログラムの動きをイメージし、それぞれのステップをコードとして具体化していきます。

ステップ⑥ 「メイン」シートの入力データを「家計簿」シートの最終行に転記
ステップ⑦ 完了メッセージを表示

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

開発編③です!
頑張って行きましょう

よしやるぞ!

開発編③

ステップ⑥ 「「メイン」シートの入力データを「家計簿」シートの最終行に転記」しましょう

ステップ⑤で「家計簿」シートの「nextRow」に取得した最終行+1行目に、「メイン」シートのC11セルからF11セルのデータを転記します。
以下のようにモジュールに記述します。コピペして下さい。

wsHousehold.Cells(nextRow, 1).Value = wsMain.Cells(11, 3).Value  ' 日付
wsHousehold.Cells(nextRow, 2).Value = wsMain.Cells(11, 4).Value  ' 項目名
wsHousehold.Cells(nextRow, 3).Value = wsMain.Cells(11, 5).Value  ' 科目
wsHousehold.Cells(nextRow, 4).Value = wsMain.Cells(11, 6).Value  ' 金額

では、コードを分解して内容を詳しく解説します。

wsHousehold
 ワークシートオブジェクトで、「家計簿」シートを指しています。

Cells(nextRow, 1)
 この部分は「家計簿」シートの特定のセルを指します。
 nextRowは「家計簿」シートの最終行+1です。
 1は列番号を示し、1列目、つまりA列を指します。

.Value
 .Valueはセルの値を取得、または設定するためのプロパティです。
 今回はwsMain.Cells(11, 3).Valueは、「メイン」シートのC11セルに入っている
 データの値を取得し、「家計簿」シートに設定します。
 これは代入演算子で、右側の「メイン」シートの値を
 左側の「家計簿」シートのセルにコピーします。

wsMain
 ワークシートオブジェクト変数で、「メイン」シートを指しています。

Cells(11, 3)
 Cellsプロパティは、シート内の特定のセルを指定します。
 11は行番号を示し、ここでは11行目を指します。3は列番号を示し、
 ここでは3列目、つまりC列を指します。
 したがって、wsMain.Cells(11, 3)は「メイン」シートのC11セルを表します。

結果、「メイン」シートのC11セルのデータを「家計簿」シートの最終行+1行目にデータを転記します。

Excelのセルの指定方法は「Cells」でも「Range」と2つ方法があります

「Cells」「Range」???

「Cells」や「Range」の使い方について覚えておきましょう!

プログラミングの基礎(Cells・Range編)についてはこちら

ステップ⑦ 完了メッセージを表示しましょう

プログラム実行後に完了したことをめMsgBox(メッセージボックス)で表示しましょう。
MsgBox(メッセージボックス)の詳細については、以下をご覧ください。

Excelで「VBA」プログラミングの基礎(MsgBox(メッセージボックス)編)

「追加」ボタンクリック後「家計簿シートに転記しました」とMsgBox(メッセージボックス)を表示します。
ボタン「OK」でタイトルは「家計簿」、アイコンは「情報」にします。
以下のようにモジュールに記述します。コピペして下さい。

MsgBox "家計簿シートに転記しました", vbInformation, "家計簿"

では、コードを分解して内容を詳しく解説します。

 ・MsgBox
   視覚的にテキストメッセージを表示させる機能です。

 ・“家計簿シートに転記しました”
   MsgBoxに表示するテキストの内容です。

 ・vbInformation
   MsgBoxに表示する「情報」ビックリマークのアイコンを表示します。

 ・“家計簿”
   MsgBoxのメッセージバーに表示するタイトルです。

実行後のMsgBox(メッセージボックス)です。

これで開発編は完了し、テスト編に移ります。

開発編③のまとめ

ここまでの内容について、ご理解いただけましたでしょうか。
「メイン」シートの入力データを「家計簿」シートに転記、完了メッセージを表示について詳しく解説しました。
プログラミングはいったんここで完了し、引き続き「テスト編①」に続きます。
これらの基本を何度も見直すことで、理解が深まるだけでなく、プログラミングに対する自信も増えてきていることと思います。
プログラミングは、一つ一つのステップを丁寧に理解していくことがとても大切です。
それにより、今後のスムーズな開発につながっていきます。
さらに学習することで、あなたのスキルが一層強化され、転職成功出来ること間違いなしです。

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

コメント

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