最近の世の中はどんどんIT化が進み、プログラミングやシステム開発等に詳しくないと生きていくうえで不利になる、そんな風潮になっているように感じませんか。
とはいえ、今までそういったものに触れてこなかった方々は、
「今更そんなことを言われてもどうしようもない。。。」
と感じているのではないでしょうか。
特に小学生のお子様がおられるお父さん・お母さんは、小学校でプログラミングが必修科目になり、
子どもに
「ここ分からないから教えて~」
と言われても
「無理!!」
と言うしかなくて困った、という方も1人や2人ではないはず。
そんなプログラミング全くの初心者に向けて、
「こうやったら自動で動くソフト(Excelマクロ)が作れるんだ!」
というのを理解していただくように、
ゼロからソフトを作っていく過程を紹介していきたいと思います。
Windowsのパソコンがあれば大抵標準装備されているExcelを使って紹介しますので、
この投稿のシリーズを最後まで読んでいただければ、
また、投稿を読みながら実際に一緒にソフトを作っていっていただければ、
「自分で実際にソフトを作ることができて、プログラミングに少し自信がついた!」
と思ってもらえるかと思いますので、是非とも一緒に手を動かしてみてください。
【本記事の目標】
プログラミングの前に、最初にやらないといけないことを知ろう
関連記事リストのページや全体まとめのページは下記にありますので、
もし「ちょっと触ったことがあるから飛ばし飛ばし見たい」という方は、
こちらのリンクから大まかな内容を見ながらピンポイントにご確認いただいても良いかと思います。
また「手っ取り早くExcelの家計簿が欲しい!」という方は、
Excel家計簿を提供しているページのリンクを載せていますので、そちらもご確認ください。
ExcelVBAで家計簿アプリを作ろう 記事一覧ページ
その1~6 まとめ
その7~10 まとめ
プログラミング(マクロ)を使わない家計簿
プログラミングを使わなくても、Excelの関数等の機能だけで家計簿を作ることもできます。
その一例として、下記ページでマクロを使わないExcel家計簿を提供しています。
とりあえずExcelで使える家計簿が欲しい!という方はご参考に。
マクロ付き家計簿の完成例
マクロ付きだとどんな家計簿ができるの?というのが分からないとイメージがしづらいと思います。
マクロ付き家計簿の一例として、下記ページでマクロ付きExcel家計簿(基本機能ver)を提供しています。
マクロ付きのExcel家計簿が欲しい!という方はご参考に。
事前準備① テーマを決めよう
それでは早速ですが、ExcelVBAの使い方について紹介していきましょう♪
と、言いたいところですが、その前にまずやらないといけない事があります。
それは『テーマ設定』『何をできるようにしたいか』を決めることです。
プログラミング言語を独学で勉強するときに、一番挫折しやすいタイミングというのが、
このコマンド・構文を覚えて、
「で、、、何に使おうか。。。」
となってしまった時です。
最終的に作りたいもの、できるようにしたいこと、といったハッキリとしたゴールが決まっていない状態で勉強を始めても、知識としては一瞬得られるかもしれませんが、実践や行動に移しにくいので、
結局すぐに記憶から抜けてしまい、自身のスキルとして身につかなくなります。
自身のスキルとして身についていないので、勉強してもできる気がしない、自信につながらない、
結局、「自分には向いてないんだろう。。。」と挫折してしまいます。
それは自分に向いてないからではなく、スキルを習得したという自信が生まれていないから。
スキルが習得できていないのは、実践していないから。
実践していないのは、何がやりたいのか決まっていないので、どう実践していいのか分からないから。
ここが一番のポイントです。
ですので、スキルを習得する際は、それを使って
今すぐ何をしたいか
を決めておくのが重要です。
このテーマは、そんな大それたことをイメージする必要はないです。
むしろできる限り身近なこと・非常に簡単で単純なことで設定しておいた方が、より実践のイメージが付きやすいので良いと思います。
そこで今回は、だれもがなんとなく知っている(たぶん。。。)、使い方もなんとなくイメージができる、家計簿を作りやすくするアプリをExcelVBAで作っていこうと思います。
事前準備② 具体的な動きのイメージをしておこう
テーマが決まりました。
それでは実際にどんな動きをさせたいかを考えます。
家計簿の役割は、どんなことにお金を使ったかを記録し、毎月その結果を見て日々の家計を見直す。というのが一般的なイメージだと思います。なので、今回作る家計簿アプリもそのイメージに沿った動きをさせようと思います。
具体的には、
- 金額を入力して勘定科目を選択したら、リストに自動で記入する。
- 記入したリストを自動的に集計する。
- 集計した結果から、今月使った割合が多い項目が何かわかるようにグラフ化する。
- 翌月の内容を記入する際は、自動で新しい白紙のリストを作成して記入していく。
- 毎月の集計結果を集めて、毎月の家計がどういう変化をしているかがわかるグラフを作る。
- 毎月の集計結果をさらに集計し、その年使った割合が多い項目が何かわかるようにグラフ化する。
このような感じの動きをさせることができれば、それっぽい家計簿アプリになると思います。
今回の家計簿アプリは、上記の内容ができるようなる、ということを目標に作っていこうと思います。
事前準備③ イメージした動きをできる限り細分化していく
動きがイメージ出来たら、より細かい動きに細分化していきます。
アプリはプログラムに書かれた内容の通りに動きます。
逆をいうと、書いたとおりにしか動かないので、色々なことを細かく指定してあげる必要があります。
例えば、テーブルにあるコップを取ってもらうとき、人間相手であれば「コップ取って~」で終わりますが、パソコンやロボットの場合、
- テーブルを確認する
- テーブルの上に置かれている物を確認する
- 置かれているものがコップかどうかを判別する
- コップだった場合、そのコップが左右どのぐらいの位置にあり、前後どのぐらいの位置にあるか確認する
- その位置に合わせて手を近づける
- 手がコップの近く近づいたら手を止め、指を動かしてコップを挟む
- 指でコップを挟むとき、指がコップに触れてから0.5秒後に指で挟む動きを止め、挟んだまま保持する
- その状態で手を少し上げ、コップをテーブルから離す
- その手を所定の場所まで移動させる
- 指定された場所まで移動したら、手を少しずつ下げてコップを所定の場所に置く
- コップの底が指定の場所に触れたら手を下げるのを止める
- 指を少しずつ開き、コップを指定の場所に置く
といった感じに事細かく指示を出してあげる必要があります。この1つ1つの文章がプログラミングの構文になっていき舞う。
なのでプログラムを書く際は、やりたい動きのイメージができたらそれを細かく細分化していく必要があります。
それでは1つ目の動きのイメージを細分化してみます。
1.金額を入力して勘定科目を選択したら、リストに自動で記入する。
これを細分化すると、下記のようになると思います。
- 入力された金額を確認する
- 選択された勘定科目を確認する
- リストの中で一番最後に記入されている場所を探す
- 一番最後の記入されている場所から、1つ次の場所を確認する
- 一番最後の1つ次の場所に、入力された金額を記入する
- 一番最後の1つ次の場所に、選択された勘定科目を確認する
こうやって細分化しておけば、あとはこの通りにプログラムを書いていけば、イメージしている動きをさせることができます。
それでは、次回はこの細分化された内容をもとに、実際にプログラムを書いていきたいと思います。
次の記事へ
コメント