変数・制御構造・関数でコードは読める
Python でも JavaScript でも VBA でも、言語が違っても“やっていること”は同じ。
研修でこんな質問をよくいただきます。「言語が多すぎて、何から手をつければいいか分からない」。
気持ちはすごく分かります。でも、あまり身構えないでください。どんなプログラミング言語も、突き詰めると たった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 を並べるより見やすい書き方が用意されている言語が多く、それが switch や case と呼ばれる構文です(VBA の Select Case もこれにあたります)。名前は違っても「ひとつの値を見て、当てはまる枝に飛ぶ」という動きは共通です。
③ 繰り返し
同じ処理を、条件を変えながら何度も実行する。 繰り返しには大きく3つのタイプがあります。名前ではなく“目的”で覚えるのがコツです。
- 回数を指定して回す:「10回やって」と回数が決まっているとき
- 要素を1つずつ処理する:リストや一覧を頭から順に1件ずつ処理したいとき
- 条件が続く間/終わるまで回す:「まだ続く間はやる」「終わるまでやる」とき
VBA でいえば順に For Next/For Each/Do While・Do Until が対応します。ただ、大事なのは名前ではありません。「回数で回すのか」「1件ずつ回すのか」「条件で回すのか」 ――この3つの目的で見分けられれば、どの言語でも迷いません。
制御構造は「順次・分岐・反復」の3語に全部まとまります。初めて見るコードでも、まずこのどれをやっているかを探す。それだけで流れが読めてきます。
3. 関数 ― 処理をまとめて再利用する
3つ目は 関数 です。ひとことで言うと 「同じ処理を何度も書かないための仕組み」。
イメージは冒頭の話と同じで、インプットを受け取って、処理して、アウトプットを返す箱 です。関数に渡す材料を 引数(インプット)、返ってくる結果を 戻り値(アウトプット) と呼びます。
中身はブラックボックスでいい
ここで大事なのは、関数の中身は知らなくていい ということです。
Excel の SUM 関数、難しいですか? 難しいと言う人はまずいないですよね。使えますよね。でも、SUM の裏側でどんなプログラムが動いて合計を出しているかは、誰も知らないし、知らなくても使えている。関数の中身はブラックボックスでいいんです。
自動販売機と同じです。コインを入れてボタンを押せばジュースが出てくる。「なぜ出てくるんだろう」と中の仕組みを突き詰め始めると、あまりいいことにはなりません。関数も、適切なインプットを渡せば、欲しいアウトプットが返ってくる ――まずはそこだけ掴んでいれば十分です。
「使うほど覚える」もので、丸暗記しなくていい
初めて見る関数は「うわ、難しそう」となります。でも、SUM が使えるようになったのは、才能があったからではなく たくさん使ったから ですよね。関数も同じで、よく使うものから自然と覚えていきます。一発で暗記しようとしなくて大丈夫です。
しかも今は、やりたいことを AI に伝えれば、関数の組み合わせは提案してくれます。だから 全部を空で書ける必要はありません。ただし、その関数が「何をしてくれるものか」「どこに設定すればいいか」という意味は分かっていないといけない。書けなくてもいいが、意味は分かっておく ――これが関数と付き合うときの勘所です。
戻り値が必ずあるとは限らない点も添えておきます。日付を返す関数のように引数がいらないものもあれば、画面を切り替えるように「動作そのもの」を目的にした関数もあります。どちらにしても、「入力→処理→出力」という骨格は変わりません。
まとめ|3つの目でコードは“翻訳”できる
最後に、今日のポイントを整理します。
| 部品 | 役割 |
|---|---|
| 変数 | 値を入れる箱(宣言・代入・データ型) |
| 制御構造 | 順次・分岐・反復の3つの流れ |
| 関数 | 処理をまとめた箱(入力→処理→出力) |
冒頭の「言語が多すぎて何から学べばいいか分からない」への答えはこうです。
この3つの目で見れば、どんな言語のコードも“翻訳”して読める。
Python も JavaScript も VBA も、見た目は違います。でも、やっていることは「箱を作る」「流れを分ける・回す」「処理をまとめる」――この3つの組み合わせでしかありません。だから、次に新しい言語を学ぶときもゼロからのスタートにはなりません。「この言語では箱はどう書く?」「分岐はどう書く?」と、今日の3つを“埋めていく”作業 になります。
新しい概念に出会って「難しい」と感じたら、それはむしろチャンスです。簡単なことは誰でもできる。難しいからこそ、身につけたときに価値になります。まずは自分の使っている言語で、この3つがそれぞれどう書かれているか、探すところから始めてみてください。



