見出し画像

プログラムの基本構造は、「順次」「分岐」「反復」の”たったの3つ”【エクセルマクロ #名言ノート70】

今回紹介させていただく名言はこちら!

プログラムの基本構造は、
「順次」「分岐」「反復」の”たったの3つ”

名言というよりはプログラミングをする人なら必ず知っておきたい基本構造です。「プログラミングなんかやらないよ」という人でも、今後はプログラミングに触れる機会は急増するはずです。理由は次の章で説明しますね。



「順次」「分岐」「反復」

プログラミングの基本構造は「順次」「分岐」「反復」です。早速その中身を確認してみましょう。

引用:【特別講義】新科目「情報Ⅰ」の攻略法 第1回『プログラミング』

順次(Sequence):

プログラムが上から下へ、書かれた順番に実行される最も基本的な流れです。特別な指示がない限り、命令は順々に処理されていきます。『順番に』と覚えるとシンプルです。

引用元:もしプロ

分岐(Selection/Branching):

ある条件が成立するかどうかによって、実行する処理を切り替える構造です。『もし~なら』と覚えるとシンプルです。

  • if-else文(もし~ならばA、そうでなければB)

    1. switch-case文(値によって様々な場合分け) などがこれにあたります。

引用元:もしプロ

反復(Iteration/Looping):

ある処理を複数回繰り返して実行する構造です。『くりかえし』と覚えるとシンプルです。

  • for文(指定回数繰り返す、またはコレクションの各要素に対して繰り返す)

    1. while文(条件が真である間繰り返す)

    2. do-while文(少なくとも1回は実行し、その後条件が真である間繰り返す) などがこれにあたります。

引用元:もしプロ

プログラミングの基本構造をおさえておくべき理由

今はプログラミングに触れていなかったとしてもなるべく早くプログラミングの基本構造を抑えておいた方がいい理由・・・

それは、ChatGPTやGeminiといったような無料で使用できるAIツールの登場により、文章でやりたいことを指示することでAIにプログラミングのコードを生成してもらうことができるようになったからです。

「ノンコードで(コードを書かなくてOK)プログラミングができる」みたいなフレーズのコマーシャルが巷にあふれていることからも、このトレンドが加速していくことは間違いないと思われます。


AIルーツで作った自動生成コードが氾濫する未来

とくにマイクロソフトのエクセルを自動化できるVBA(通称マクロ)とか、Googleのスプレッドシートを自動化できるGAS(ガス)なんかは、AIツールを使って生成されたコードが多くの現場で実装されていくことが容易に想像できます。

たとえば、実務では余りこんな作業はないですが、「エクセルのA1からA100まで『いっこ飛ばし』でセルを黄色く塗って」という指示を与えられたとします。いっことばしというところがミソで、エクセル作業はフィルター機能などが使えないこういった処理は手作業では非常に手間です。

ただ、AIツールを使えば一瞬でコードを生成できます。いかはGeminiにコードを作ってもらったケースです。

あとはこの生成されたコードをエクセルのVBEに貼り付けて実行するだけで、A1からA100にたいしていっことばしでセルが黄色く塗られます。

エクセルもスプレッドシートも本質的には表計算ソフトですが、あらゆる業務の本質がそもそも「インプット→加工→アウトプット」なので、このプロセスの「加工」のところで表計算ソフトであるエクセルやスプレッドシートが日々、様々な現場で大活躍しています。

幼少期からインターネットやデジタルデバイスが身近にあったデジタルネイティブ世代がどんどん社会に進出する年頃になってきています。そんなデジタルネイティブ世代のなかでも一般的に1990年代後半から2010年代前半に生まれたZ世代は「タイパ=タイムパフォーマンス」をとても気にする傾向があります。

タイパは、費やした時間に対する効果や満足度を表す言葉です。短い時間で高い成果や満足感を得られた場合に「タイパが良い」、逆に時間がかかった割に効果や満足度が低い場合に「タイパが悪い」と表現します。Z世代を中心に、効率的な時間の使い方や、短い時間で多くの情報を得ようとする傾向が強いようです。

  1. AIツールを使ってコードを生成することで作業を自動化できる

  2. これから社会で活躍していくZ世代はタイパを重視している

この2点から導き出される予測としては、「構造を理解しないままAIによって生成されたコードが仕事の現場に入り込みまくる」という惨状です。


AI自動生成プログラムが引き起こす惨状

なぜAIツールによって生成されたプログラム(コード)があらゆる現場に氾濫する状況が惨状なのかというと、実装した本人が内容を理解できていないので、ちょっとした変更点やイレギュラーが発生すると実装されているプログラミングのコードを修正できない可能性があるためです。

仕事は、ひとたび効率化されると、その空いた時間に新しい仕事が与えられるという暗黙のルールというか不文律があります。資本主義の悲しい定めですね。いったん自動化された業務は、その業務がかかる正味時間が自動化された業務の時間でみなされるため、日々使用している自動化のコードが動かなくなると、単純にその日の仕事が遅れることになります。プラスがゼロになるのではなく、ゼロがマイナスになるようなものです。タイパを重視して自動化を図ったのに、本末転倒ですよね。

けど、ここ交ぜの全体像を把握しているにもかかわらず、イレギュラー時のデメリットを覚悟したうえでAIツールを使って自分が理解できないコードを実装する人は多くはないと思います。大半のケースは、イレギュラー発生時のことまでは考えが及ばず、とりあえず目の前の業務を自動化したい一心だけでAIツールによるコードの生成に手を出してしまいます。

「説明できなければ理解したとは言えない」

とはアインシュタインの名言です。天才は残す言葉一つとっても秀逸ですね。


自動化されたシステムを『誰か』がメンテナンスしないといけない

ひとたび業務が自動化されると、その業務は自動化された状態が通常の状態とみなされます。イレギュラーが起きた場合、誰かがコードを直さなければいけません。誰も直せなかった場合は最悪のケースですが、自動化する前のマニュアル処理に戻せばいいですが、対応してできなかった人の評価が下がることは間違いありません。

場合によってはかなりクリティカルな業務にAIによる自動生成されたコードが使用されていることも考えられます。マニュアル作業に戻そうにも、そもそもマニュアルでのやり方が分からないくらい自動化された状態が通常化しているケースも考えられます。

そう、多くのケースで、そもそも重宝されている自動化用のコードは誰かがメンテナンスしなければいけないんです。

そもそも、AIによって自動生成されていようがいまいが、そのコードの内容を理解できる人が組織を去ってしまったら、誰かしらがメンテナンス担当の役割を引き継がなければいけません。今後は、メンテナンス対象となるコードが爆発的に増える可能性がかなり高いということです。AIツールの登場とそれらを躊躇なくしようするZ世代の社会進出によって・・・。

そんなときに役に立つ知識が、今回紹介させていただいた名言です。

プログラムの基本構造は、
「順次」「分岐」「反復」の”たったの3つ”

自動化したい処理が長く複雑であればあるほど、プログラムのコードも長く複雑化していきます。しかし!実際にコードによって実行されている処理は大きく分けると「順次」「分岐」「反復」の”たったの3つ”なんです。

どんなに長くて複雑なコードであろうとも、実行している内容は1行ごとのコードの実行結果の連続です。1行ごとのコードは必ず「順次」「分岐」「反復」のどれかです。「プログラムが動ない」という言葉は、自自動化したシステムが意図したように動かないという問題を表現する言葉としては解像度が低すぎます。実際には、「プログラムが動かない」という問題は、必ずどこかの行のコードにおいて「順次」か「分岐」か「反復」のどれかがこちらが意図したように動いていない。という状態です。

ここが理解できていれば、不具合が発生してしまったプログラムを修正できる可能性が大幅にアップします。自分が作ったコードではなくても、どこで不具合が起きているのかアタリをつけやすくなるからです。


資格試験もおすすめ

プログラミングの基本をおさえるうえで、思い切って資格試験に取り組むこともおすすめです。わたしは、期日がないと全然頑張れないタイプで、しかもそこに費用が加わると自分の意志力以上に集中力が発揮できるタイプです。身銭を切って初めて事の重大さが頭ではなく心で理解できるたいぷなんですよね・・・。

『Excel VBA ベーシック』という試験がおすすめです。VBAとはマクロのことです。要は『エクセルのマクロに関するベーシック(基本的)な知識に関する試験』です。

この試験がパスできたからと言ってゼロからマクロが書けるようになるわけではありませんが、「順次」「分岐」「反復」に関する理解は深まりますし、どんな感じでプログラムがじっこうされているのかというプログラミングに関する基本的な知識が得られる内容になってます。

CBT方式なので、試験は最寄りのパソコン教室で毎週末開催されてます。学習に関しても公式のテキストはありますが、ベーシックならYoutubeで解説されている動画を何周かまわして、ネットに転がっている模擬試験を何回か解けば十分に合格圏内にたどり着けます。

昨今、積み立てNISAがはやったり、ふるさと納税が当たり前になってきたように、マネーに関する基礎知識=マネーリテラシーの重要性が世間一般的にも高まってきています。今後はこのトレンドにITに関する基礎知識、つまりITリテラシーの重要性が今以上に高まってくることが容易に予想できます。

ITリテラシーの中でも特に重要・・・というかコスパがいいのがプログラミングに関する基本的な知識だと、私は思っています。もし興味があるのであれば、ぜひ『Excel VBA ベーシック』に取り組んでみてください。

『Excel VBA ベーシック』攻略に関して丁寧に解説してくれている動画シリーズです。↓

公式テキストはこちらです。やっぱりなんだかんだ1冊持ってると参考になります。

今回の記事が面白かった方はぜひこちらもチェックしてみてください!

📢おしらせ

最後まで読んでいただきありがとうございました。『スキ』や『フォロー』大歓迎です!Noteでの活動の励みになります!

改めましてこんにちは。『Nick』と申します。大学は出てないけれど読書を続けて外資系企業で10年以上。そんな等身大のサラリーマンが200冊以上の読書経験と、日々の仕事や暮らしの中で出会った「心に刺さる名言」を紹介します。マンガ・アニメ・映画などサブカルチャーからの引用も多数掲載!

自己紹介とご挨拶

自己紹介とメイントピックの紹介はこちら!▼

名言ノート一覧リストはこちら!▼

いつか本を出版してみたいなと夢見てたりもします!▼


いいなと思ったら応援しよう!

名言ハンターNick 読んでいただきありがとうございます。この記事の内容がちょっとでもあなたの人生の役に立てばうれしいです。