ITプログラム研修資料VBAPower Automate Desktop

プログラミングの基本はまずこの3つだけ!

IT
この記事は約7分で読めます。

変数・制御構造・関数でコードは読める

Python でも JavaScript でも VBA でも、言語が違っても“やっていること”は同じ。

研修でこんな質問をよくいただきます。「言語が多すぎて、何から手をつければいいか分からない」。

気持ちはすごく分かります。でも、あまり身構えないでください。どんなプログラミング言語も、突き詰めると たった3つの部品 でできています。

  1. データを入れる箱
  2. 処理の流れ
  3. まとめて呼び出す仕組み

名前をつけると、変数・制御構造・関数 です。逆に言えば、この3つの目さえ持っていれば、初めて見る言語のコードでも「ここは箱を作っている」「ここで流れを分けている」と“翻訳”しながら読めるようになります。

その前に、ひとつだけ土台になる話をさせてください。

まず「インプットとアウトプット」だけ

パソコンの操作って、最小限まで抽象化すると インプットとアウトプットの2つしかない んです。皆さんがキーボードで文字を打つのがインプット、画面にその文字が出てくるのがアウトプット。フォルダーをダブルクリックするのがインプット、フォルダーが開くのがアウトプット。基本、この2つだけ。

ただ、その間にいろんなプログラムが挟まっているから「難しい」「ややこしい」と感じるだけなんです。だから、これから出てくる3つの部品も、全部この「入れたものを、何か処理して、出す」の話だと思って読んでください。そう思うと、意外と腑に落ちます。


1. 変数 ― データを扱う

変数をひとことで言うと、「値に名前をつけて、あとで使い回すための箱」 です。

たとえば 85 という数字。そのまま置いてあっても、後で見た人には何の数字か分かりません。そこで score という名前の箱を用意して、そこに 85 を入れておく。こうすれば、コードのどこで出てきても「これは点数だ」と分かり、何度でも呼び出せます。

覚えておいてほしい要素は、たった3つです。

  • 宣言:箱を用意して名前をつける
  • 代入:箱に値を入れる
  • データ型:箱に入るものの種類(数値・文字・真偽など)

この3つはバラバラに覚えるより、変数といえばこのセット と、まとめて覚えるのがコツです。たとえば「score に 100 を代入する」と書けば、score という箱の名前と、100 という代入する値、この2つが必ず出てきますよね。変数を扱うたびに、この要素が顔を出します。

文字列は必ずクォーテーションで囲む

もうひとつ、言語をまたいでも通じる大事なルールがあります。文字列はダブルクォーテーションで囲む、ということです。

"日曜日" と書けば文字列ですが、クォーテーションを外して 日曜日 と書くと、多くの言語では「日曜日という名前の変数」だと解釈されてしまいます。「日曜日の変数を休日に入れる」みたいな、わけの分からないことになる。目印はクォーテーションがあるかないか。ここは最初につまずきやすいので、意識しておいてください。

型の“厳しさ”は言語によって違う

データ型には、言語ごとに温度差があります。あらかじめ「この箱には整数しか入れません」と宣言しないといけない言語もあれば、入れた値を見て種類を自動で判断してくれる言語もあります。自分の使う言語がどちらのタイプかを意識できるだけで、他の言語に移ったときの戸惑いはぐっと減ります。


2. 制御構造 ― 処理の流れをコントロールする

ここが今日の 核心 です。変数がデータの「置き場所」なら、制御構造は 「処理の流れ」そのもの を決める部品です。そして流れのパターンは、たった3つしかありません。

  • 順次(上から順に)
  • 分岐(条件で枝分かれ)
  • 反復(繰り返す)

① 順次処理

書いた通りに、上から順に実行される。 これがすべての基本です。特別なことは何もしていません。次に出てくる「分岐」と「反復」は、この“上から順”という当たり前を、わざと崩すための仕組みだと思ってください。

② 条件分岐

条件によって、実行する処理を切り替える。 日常でいえば「雨なら傘を持つ、晴れなら持たない」。これがプログラムの if です。

ここで、制御構造を理解する上で欠かせない考え方があります。条件式は「イエスかノーで答える質問」だ、ということです。

たとえば「エリアは関東と等しいですか?」と聞けば、答えはイエス(正しい=真)かノー(間違い=偽)のどちらか。プログラムではこれを真偽(True / False)で表します。10 = 10 なら真、15 > 5 も真、-3 > -2 は……マイナス3のほうが小さいので偽。ここはよく間違えるので気をつけてください。

if は、この質問の答えが真か偽かによって、実行する処理を切り替えているだけです。条件が増えて枝分かれが多くなると、if を並べるより見やすい書き方が用意されている言語が多く、それが switchcase と呼ばれる構文です(VBA の Select Case もこれにあたります)。名前は違っても「ひとつの値を見て、当てはまる枝に飛ぶ」という動きは共通です。

③ 繰り返し

同じ処理を、条件を変えながら何度も実行する。 繰り返しには大きく3つのタイプがあります。名前ではなく“目的”で覚えるのがコツです。

  • 回数を指定して回す:「10回やって」と回数が決まっているとき
  • 要素を1つずつ処理する:リストや一覧を頭から順に1件ずつ処理したいとき
  • 条件が続く間/終わるまで回す:「まだ続く間はやる」「終わるまでやる」とき

VBA でいえば順に For NextFor EachDo WhileDo Until が対応します。ただ、大事なのは名前ではありません。「回数で回すのか」「1件ずつ回すのか」「条件で回すのか」 ――この3つの目的で見分けられれば、どの言語でも迷いません。

制御構造は「順次・分岐・反復」の3語に全部まとまります。初めて見るコードでも、まずこのどれをやっているかを探す。それだけで流れが読めてきます。


3. 関数 ― 処理をまとめて再利用する

3つ目は 関数 です。ひとことで言うと 「同じ処理を何度も書かないための仕組み」

イメージは冒頭の話と同じで、インプットを受け取って、処理して、アウトプットを返す箱 です。関数に渡す材料を 引数(インプット)、返ってくる結果を 戻り値(アウトプット) と呼びます。

中身はブラックボックスでいい

ここで大事なのは、関数の中身は知らなくていい ということです。

Excel の SUM 関数、難しいですか? 難しいと言う人はまずいないですよね。使えますよね。でも、SUM の裏側でどんなプログラムが動いて合計を出しているかは、誰も知らないし、知らなくても使えている。関数の中身はブラックボックスでいいんです。

自動販売機と同じです。コインを入れてボタンを押せばジュースが出てくる。「なぜ出てくるんだろう」と中の仕組みを突き詰め始めると、あまりいいことにはなりません。関数も、適切なインプットを渡せば、欲しいアウトプットが返ってくる ――まずはそこだけ掴んでいれば十分です。

「使うほど覚える」もので、丸暗記しなくていい

初めて見る関数は「うわ、難しそう」となります。でも、SUM が使えるようになったのは、才能があったからではなく たくさん使ったから ですよね。関数も同じで、よく使うものから自然と覚えていきます。一発で暗記しようとしなくて大丈夫です。

しかも今は、やりたいことを AI に伝えれば、関数の組み合わせは提案してくれます。だから 全部を空で書ける必要はありません。ただし、その関数が「何をしてくれるものか」「どこに設定すればいいか」という意味は分かっていないといけない。書けなくてもいいが、意味は分かっておく ――これが関数と付き合うときの勘所です。

戻り値が必ずあるとは限らない点も添えておきます。日付を返す関数のように引数がいらないものもあれば、画面を切り替えるように「動作そのもの」を目的にした関数もあります。どちらにしても、「入力→処理→出力」という骨格は変わりません。


まとめ|3つの目でコードは“翻訳”できる

最後に、今日のポイントを整理します。

部品役割
変数値を入れる箱(宣言・代入・データ型)
制御構造順次・分岐・反復の3つの流れ
関数処理をまとめた箱(入力→処理→出力)

冒頭の「言語が多すぎて何から学べばいいか分からない」への答えはこうです。

この3つの目で見れば、どんな言語のコードも“翻訳”して読める。

Python も JavaScript も VBA も、見た目は違います。でも、やっていることは「箱を作る」「流れを分ける・回す」「処理をまとめる」――この3つの組み合わせでしかありません。だから、次に新しい言語を学ぶときもゼロからのスタートにはなりません。「この言語では箱はどう書く?」「分岐はどう書く?」と、今日の3つを“埋めていく”作業 になります。

新しい概念に出会って「難しい」と感じたら、それはむしろチャンスです。簡単なことは誰でもできる。難しいからこそ、身につけたときに価値になります。まずは自分の使っている言語で、この3つがそれぞれどう書かれているか、探すところから始めてみてください。

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