見出し画像

社会人のプログラミングにはExcelVBAが最適1

ITサポーターTsuchidaの土田です。ここ最近Excelの記事を書きましたが、私が思うに日本人はもっとプログラミングを身に着ける必要があります。ただし、プログラミングを全くやったことがない人にとっては、プログラミングはとてもハードルが高いように見えます。

プログラミングに必要なことには、大きく分けて2つあります。

1つ目はプログラミングに共通する基本的な考え方とルールを知ることです。2つ目は自分が実際に作りたいものがあるかどうかです。自分が作りたいと思っていないことが書かれているテキストを見て、テキスト通りにやっても何の達成感が得られません。達成感が得られないとプログラミングを続ける気にはなりません。社会人はExcelをよく使うので、Excelの自動化ができるExcelVBAはプログラミングの入り口として最適です。

今回の記事は1つ目の基本的なルールについて書くことにします。基本的なルールの中で初心者が躓くポイントがいくつかあります。

①変数

プログラミングになれると変数は当たり前のように使いますし、変数が使えないとプログラミングができないとすら感じます。変数ってプログラマーが処理中に自由に使える便利な箱のようなものです。私が一番わかりやすい例として、引っ越しの時の段ボール箱です。引っ越しの最中は必要だけど、引っ越しが終われば不要になります。段ボール箱って引っ越しに必要な数・大きさ・強度などが引っ越しのよって変わります。プログラミングにも処理の内容や規模によって必要とする変数の数や型やサイズは変わり、処理が終わったら変数はいらなくなるものです。そう考えると、変数って引っ越しの段ボール箱だと思えばイメージがつくかと思います。

プログラミイング言語によって、変数を使う前に宣言したり、型を指定して用途を限定したり、使える範囲を共通にしたり限定したりと様々だったりします。最初は理解するために、変数を使う前に正しい型を指定して宣言すべきでしょう。

初心者にとって変数って、突然出てくる何やっているかわからない文字で、テキストに詳しく書かれていないので、混乱してハードルになりいます。でも処理中に一時的に使う箱のようなものと思えば、そういうものだと割り切れます。私が思うに、変数が自由に使えるようになることが、プログラミングのスタート地点に立てます。

②条件判定

プログラミングには必ず条件を満たしているかどうかの判定が必要になります。条件判定が多ければ多いほど多岐の処理が可能になります。条件判定が少ないほど想定外に対応できなくなります。ExcelのIF関数ってまさに条件判定する関数なので、IF関数が理解できる人は条件判定はわかりやすいです。

多くのプログラミング言語では、条件判定をif 条件式 then 真の処理 else 偽の処理で表され、構文はIF関数とほとんど一緒です。if文の中に変数が入ったり、ifの中にifがネストしたりするので、IF関数よりは複雑に見えるかもしれません。

プログラミング言語の中には、if 条件式 then 真の処理 elseif~elseif~と並列に並べたり、case命令などの複数分岐をするものもあります。

慣れないうちは単純なif文にして慣れてきたら、elseifやcase命令を使うと幅が広がります。

条件判定が理解できるかどうかはプログラマーの適性があるかどうかの見極めにもなります。プログラミングの未経験者がプログラミングができるかどうかの判定として、ExcelでIF関数が使えるかどうかで判断するのがいいと思います。

③ループ処理

人間は単純作業に飽きたり、ミスをしたりするものです。ところがコンピュータは単純作業を繰り返すことはお得意です。なぜプログラミングで効率化が果たせるかというと、単純作業を繰り返すループ処理ができるからです。逆にループ処理がプログラミングでできるようになると、手作業の単純作業がばかばかしくなります。

ループ処理で使われるものとして、for文やfor each文やdo while文があります。ループ処理が使いこなせれば、プログラマーとしてレベルが一段上がります。

プログラミング的思考とはどうやったら効率的なループ処理ができるかを考えるもので、効率的な規則性が考えるようになります。

for文は最初の初期値から最後の終了値まで繰り返すもので、どこで始まってどこで終わるかが判断できれば繰り返しができます。for each文はコレクションにあるものすべて繰り返し処理を行います。for文やfor each文では対応できないループをdo while文で行うという使い分けになります。

①変数、②条件判定、③ループ処理はどのプログラミング言語でも共通しますし、ExcelのVBAでも使えます。この3つが理解できればプログラミングが入り口に立てます。あとは個々のプログラミング言語の癖を覚えることと、ファイル処理やデータベース処理や画面のインターフェイスを追加で覚えればスキルが深まります。

プログラミングを最初の段階で難しいことをやろうとすると挫折します。登山初心者だったら最初は高尾山を登るべきで、北アルプスの槍ヶ岳に登るのは無謀なのと同じです。まずは簡単なものから初めて、徐々に難しいものに挑戦すべきです。

幸いExcelのVBAは、ExcelがインストールされているPCではすぐに使えますし実行も簡単です。比較的簡単なHTMLやPHPですら、専用のエディタやテスト環境が必要だったりします。

今回、Excelからいきなりプログラミングに飛躍した感じですが、Excelの上級者がやるべきことは関数ではなくVBAなのです。関数は手作業の補助で、手計算で電卓を使っているようなもので、本当の自動化や効率化を果たすにはVBAを学びましょう。

今回はプログラミングのもっともベーシックな①変数、②条件判定、③ループ処理を紹介しましたので、ExcelのVBAでは①変数、②条件判定、③ループ処理をどのように行うのかまで紹介できたらと思っています。



この記事が気に入ったらサポートをしてみませんか?