プログラミングを学ぶ姿勢について

記事
IT・テクノロジー
先日、Excel処理の自動化に興味を持たれた職場の方がVBAマクロを勉強してみようと思い、書店で関連図書を見て回ったそうです。
その際、たくさんの参考書を見ている中でとても分厚いものがあり、威圧感のようなものを感じて勉強するのをためらってしまいそうになったそうです。

プログラミングそのものを学ぶことと言語を学ぶことを別に考える

VBAマクロを組むとして、参考文献を見ると英文混じりの数式みたいなものがごっそり書いてあり、聞き慣れない言葉で解説文が載っているというだけで初心者としてはストレスがたまると思います。
実際は使用されている構文というのは数えるほどのパターンしかなく、そのパターンを目的に合わせて組み合わせており、構文の文法は各プログラミング言語で定められた型に準じて表記されています。ここでいう構文とは目的を達成するための論理的な処理の構造のようなものです。
プログラミング言語がどのようなものであれ、構文構造はあまり違いがないので、ある言語で処理を書けるようになれば、他の言語の処理も書けるようになるのは簡単だと思います。

プログラミングとは処理の順序や手立てを組み立てること

「運動会のプログラム」のようなものを見たことがあるでしょうか?
選手入場、開会式、個別競技、と、さまざまな催しが書いてあり、それらは一般的に時系列で書かれていると思います。
実際には、各催しと催しの間に準備や片付けがあったり、催しの中で手順が決まっていて、それらは「運動会のプログラム」には記載してありません。そのへんの細かいことは予行演習で打ち合わせてしまうことでしょう。
プログラミングの場合も、まず処理の目的と手順をざっくり洗い出してみて、それらをどの順番でどのように行っていくか、アイデアと手順を組み立てていくところから始めます。
この段階ではプログラミング言語は意識しないで行います。やるべきことが決まったらそれを言語に置き換えて表記していく作業へ進みます。言語に置き換えていく段階で、「準備」や「後片付け」が必要になってきます。

プログラミング構文のパターンだけは頭に入れる

手順を組み立てる段階で言語は意識しないで良いのですが、VBAマクロなどの実際の言語で処理をコンピュータで行うためには構文のパターンは知っておく必要があります。これは一般的に知られる「フローチャート」のようなものを書いていくことで、構文に沿った処理の記述に近づいていくことができます。
構文のパターンをいくつか挙げて見ます。
 機能呼び出し
 はじめから提供されている機能を使用します。ファイルを開くとか、今日の日付を取得するとか、セルの値を変数に読み込むのは既に用意された機能を使えば実現できます。
変数に値を入れる・参照する
 計算したり、比較したり、値を仮保存したりするために使うデータ保存用の箱です。常に参照・更新できるアイテムです。
比較・条件分岐
 いわゆる「IF文」として知られる構文で、比較し、結果によってその後の処理を別々に記載することができます。比較する値は自分で用意しないといけません。比較するために必要な情報はいくつか手順を踏まないと得られないものが多いと思います。比較の種類はAとBが(同じ、違う、大きい、小さい)程度のものですので、たくさんの条件がある場合は組み合わせて使用することになります。
繰り返し
全く同じことを繰り返すわけではなく、一定の処理を複数のデータに対し行う場合などに使用します。この場合、変数の使用は必須になります。繰り返しの中で変数の値をどう変化させるかによって処理が変わってきます。VBAマクロで一般的に行うのはExcelシートに入力されたデータの先頭行から順番にデータを処理していき、最終行で処理をやめる、といった感じです。先頭行が5行目、最終行が70行目であれば、繰り返しの中において、行を指定する変数は5から70まで1つずつ変化していくことになります。
ジャンプ
 処理は記載された順に処理されていくのですが、途中の処理を飛ばしてある地点へ行きたいときに使います。一般的に処理の続行が困難になる「エラーが発生した」ような場合、それ以降の処理が行えないために使用することがあります。

学ぶ姿勢として

上記のような構文はどのようなプログラミング言語にも用意されており、記述の仕方は少しづつ違っています。言語の表記の仕方は都度辞書を引くとして、まずは構文を組み立てる練習をしていくことからプログラミングを学んでみてください。

追記

対話型AI 「ChatGPT」でVBAマクロのコードを生成してもらえる旨の記事を目にするようになりました。どのようなデータをどう処理したいか、という仕様をプログラミングの概念を用いて考えることができるような練習をするのに使えそうですね。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら