研修資料VBA

プログラミング的思考とは?

研修資料
この記事は約10分で読めます。

5つの要素を具体例でわかりやすく解説

「プログラミング的思考とは、結局どういう考え方なのかよくわからない」

「プログラミングをしない仕事でも必要なの?」

そんな疑問を持つ方も多いのではないでしょうか。

プログラミング的思考とは、プログラムを書くためだけの専門的な考え方ではありません。

複雑な問題を整理し、必要な情報を見極め、解決までの手順を組み立てるための考え方です。

たとえば、

  • Excelで毎月同じ作業をしている
  • 業務の手順が人によって違う
  • ミスの原因がなかなか見つからない
  • 生成AIにうまく指示できない
  • 業務を効率化したいが、どこから手をつければよいかわからない

といった場面でも、プログラミング的思考は役立ちます。

この記事では、プログラミング的思考を、

「分解」「順序立て」「抽象化」「一般化」「分析・シミュレーション」

という5つの要素に分け、ITが苦手な方にもわかるように身近な仕事の具体例を交えて解説します。

プログラミングの経験がない方でも理解できる内容ですので、「仕事をもっと整理したい」「業務効率化やDXについて学びたい」という方は、ぜひ参考にしてください。


1. プログラミング的思考とは?

プログラミング的思考とは、簡単にいうと、

問題を整理し、解決までの道筋を論理的に組み立てる考え方(問題定義・問題解決)

です。

名前に「プログラミング」と付いていますが、必ずしもプログラムを書くことを意味するわけではありません。

コンピューターに何かをしてもらうときには、

「何をするのか」

「どの順番でするのか」

「どのような条件なら、何をするのか」

といった内容を、一つずつ整理して指示する必要があります。

この考え方は、私たちの普段の仕事でもそのまま使えます。

たとえば、新しく入った社員に「請求書の作り方を教えてください」と言われた場合を考えてみましょう。

自分では普段何となくできていたとしても、人に説明するには、

  • 最初に何を確認するのか
  • 次に何をするのか
  • どの情報が必要なのか
  • 例外の場合はどうするのか

を整理する必要があります。

このように、頭の中で何となく行っていることを整理し、誰でも理解できる形にすることも、プログラミング的思考の一つです。


2. なぜプログラミング的思考が必要なのか?

近年、仕事の現場ではDXや業務効率化が重要になっています。

Excelだけでなく、クラウドサービス、業務アプリ、RPA、生成AIなど、便利なデジタルツールも増えています。

しかし、便利なツールを導入するだけで業務が効率化するとは限りません。

そもそもの仕事の流れが整理されていなければ、

「どこを自動化すればよいかわからない」

「ツールを導入したのに、逆に作業が増えた」

といったことも起こります。

業務効率化の前に「仕事を整理する」必要がある

たとえば、毎日30分かかっているExcel作業があるとします。

このとき、すぐに

「Excelの便利な関数を覚えよう」

「マクロを作ろう」

と考えるのではなく、まず、

  • どんな作業をしているのか
  • 毎回同じ作業はどこなのか
  • 人が判断している部分はどこなのか
  • 自動化できそうな部分はどこなのか

を整理します。

こうした整理こそ、プログラミング的思考です。

生成AIを使うときにも役立つ

プログラミング的思考は、ChatGPTなどの生成AIを使うときにも役立ちます。

たとえば、

「いい資料を作ってください」

とだけ伝えるよりも、

「新入社員向けに」
「A4一枚程度で」
「専門用語を使わず」
「結論、理由、具体例の順番で」

と条件を整理して伝えた方が、希望に近い回答を得やすくなります。

つまり、プログラミング的思考は、

DX、業務改善、Excel、生成AIなどを使いこなすための土台となる考え方

だといえます。


3. プログラミング的思考を構成する5つの要素

プログラミング的思考は、さまざまな考え方を組み合わせて使います。

この記事では、次の5つの要素に分けて考えます。

  1. 分解
  2. 順序立て
  3. 抽象化
  4. 一般化
  5. 分析・シミュレーション

それぞれの意味を、身近な仕事の具体例とともに見ていきましょう。


4. 分解とは?大きな問題を小さく分けて考える

分解とは、

複雑な問題や作業を、小さな単位に分けて考えること

一言で表すなら

「問題の細分化」

です。

たとえば、「イベントを開催する」という仕事を任されたとします。

このままでは、何から始めればよいかわかりにくいですよね。

そこで、

  • 会場を決める
  • 日程を決める
  • 参加者を募集する
  • 案内文を作る
  • 資料を準備する
  • 当日の役割を決める
  • 受付を準備する

というように、仕事を小さく分けます。

すると、一つひとつの作業が見えるようになります。

問題の原因を探すときにも「分解」は使える

たとえば、「最近、売上が下がっている」という問題があったとします。

売上だけを見ていても、原因はわかりません。

そこで、

  • 来店客数は減っているのか
  • 購入する人の割合が下がっているのか
  • 一人あたりの購入金額が減っているのか
  • 特定の商品だけ売れていないのか

と問題を分けて考えます。

大きくて漠然とした問題ほど、分解することで考えやすくなります。

「何から考えればいいかわからない」と感じたら、まず小さく分ける。

これが分解の基本です。


5. 順序立てとは?作業の手順を整理する

順序立てとは、

何をどの順番で行えばよいかを整理すること

一言で表すなら

「効率化」

です。

身近な例として、料理を考えてみましょう。

カレーを作る場合、

  1. 材料を切る
  2. 肉や野菜を炒める
  3. 水を入れて煮る
  4. ルーを入れる
  5. さらに煮込む

という流れがあります。

この順番を大きく間違えると、うまく料理できません。

仕事でも同じです。

たとえば請求書を作る場合、

  1. 売上内容を確認する
  2. 金額を計算する
  3. 請求書を作成する
  4. 内容を確認する
  5. 取引先へ送付する

という手順があります。

作業の順番を整理することで、抜けやミスを減らすことができます。

「もし○○なら△△する」も順序立て

順序立てでは、単純な順番だけでなく、条件によって処理を変えることも考えます。

たとえば問い合わせ対応なら、

「商品についての質問なら営業担当へ」

「故障についての相談ならサポート担当へ」

といった分岐があります。

この、

「もし○○なら△△する」

という考え方は、プログラミングでもよく使われます。

プログラミングの処理については下記の記事にまとめていますのでぜひ。

プログラミングの基本はまずこの3つだけ!
変数・制御構造・関数でコードは読めるPython でも JavaScript でも VBA でも、言語が違っても“やっていること”は同じ。研修でこんな質問をよくいただきます。「言語が多すぎて、何から手をつければいいか分からない」。気持ちはすごく分かります。でも、あまり身構えないでください。どんなプログラミング言語も、突き詰めると たった3つの部品 でできています。データを入れる箱処理の流れまとめて…

6. 抽象化とは?細かな違いを取り除いて本質を見る

抽象化は、少し難しく聞こえる言葉ですが、考え方そのものはそれほど難しくありません。

抽象化とは、

細かな違いをいったん取り除き、重要な特徴や共通点に注目すること

一言で表すなら

「本質化」

です。

たとえば、

「赤いボールペン」「青いボールペン」「黒いボールペン」

があったとします。

色は違いますが、すべて「ボールペン」です。

赤、青、黒という違いをいったん取り除き、

「文字を書くための道具」

という共通する特徴を見ることが、抽象化です。

仕事での抽象化の例

たとえば、

「A社に見積書を送る」
「B社に見積書を送る」
「C社に見積書を送る」

という仕事があるとします。

会社名、金額、担当者などはそれぞれ違います。

しかし、少し広い視点で見ると、すべて

「取引先に見積書を作成して送る仕事」

です。

細かな違いではなく、共通している部分を見ることで、仕事の仕組みが見えてきます。


7. 一般化とは?一度考えた方法をほかでも使えるようにする

一般化とは、

ある場面で使った方法を、似たような別の場面でも使える形にすること

つまり

「ルール化」

です。

抽象化と一般化は似ていますが、

抽象化は「共通点を見つける」

一般化は「その共通点を使ってルールを作る」

と考えるとわかりやすくなります。

たとえば、A社の見積書を作るときに、

  1. 顧客情報を入力する
  2. 商品情報を入力する
  3. 金額を計算する
  4. PDFにする
  5. メールで送る

という手順を整理できたとします。

B社やC社でも同じような流れであれば、

「見積書作成の共通ルール」

としてまとめることができます。

Excelのテンプレート作成も一般化

Excelでも同じです。

毎月、

「1月売上.xlsx」
「2月売上.xlsx」
「3月売上.xlsx」

と一から作るのではなく、

「月を変更すれば毎月使える売上表」

を作ります。

これは、特定の月だけで使える方法から、どの月でも使える方法へ変えています。

これが一般化です。


8. 分析・シミュレーションとは?結果を確認し、よりよい方法を考える

分析・シミュレーションとは、

現在の状況を確認したり、条件を変えたときにどうなるかを予測したりすること

です。

たとえば、会社でコピー用紙を毎月100冊購入しているとします。

「本当に100冊必要なのだろうか?」

と考えた場合、

  • 毎月何冊使っているのか
  • 余っている月はないか
  • 部署による差はあるか
  • 80冊に減らした場合はどうなるか

などを調べます。

これが分析です。

さらに、

「社員が10人増えたら?」

「ペーパーレス化が進んだら?」

「印刷量が20%減ったら?」

と、まだ起きていない状況を想定して考えることがシミュレーションです。

Excelで、

「売上が10%増えたら利益はいくらになるか」

「原材料費が5%上がったらどうなるか」

と計算することも、身近なシミュレーションの例です。


9. 5つの要素は独立しているわけではない

ここまで5つの要素を別々に説明しましたが、実際には一つずつ独立して使うわけではありません。

5つの考え方を組み合わせたり、途中で戻ったりしながら問題を解決します。

たとえば、

「毎月の請求書作成に時間がかかっている」

という問題を考えてみましょう。

まず、

「顧客情報を確認する」
「金額を計算する」
「請求書を作る」
「PDFにする」
「メールで送る」

と作業を分解します。

次に、どの順番で作業するかを順序立てます。

さらに、

「取引先によって違う部分と、毎回同じ部分はどこか」

を考えるのが抽象化です。

そして、

「どの取引先にも使える請求書のひな形を作れないか」

と考えるのが一般化です。

最後に、

「自動化した場合、どれくらい時間を短縮できるか」

「取引先が2倍になっても対応できるか」

と考えるのが分析・シミュレーションです。

このように、5つの要素は互いにつながっています。


10. 身近な仕事でプログラミング的思考を考えてみよう

プログラミング的思考は、IT部門だけが使うものではありません。

身近なExcel作業でも使えます。

たとえば、毎月複数の店舗から届く売上データをExcelにまとめているとします。

分解

作業を、

「データを受け取る」

「Excelにまとめる」

「合計を計算する」

「間違いがないか確認する」

「上司へ報告する」

に分けます。

順序立て

データ受取

一覧へまとめる

計算する

確認する

報告する

という流れを整理します。

抽象化

店舗ごとに売上金額は違いますが、

「店舗名」

「日付」

「商品名」

「売上金額」

というデータの形は共通しています。

一般化

それなら、

「どの店舗のデータでも同じ表に入れられるExcelテンプレート」

を作れるかもしれません。

分析・シミュレーション

さらに、

「店舗が10店舗から30店舗になったらどうなるか」

「自動集計にすると毎月何時間削減できるか」

を考えます。

ここまで整理できれば、

「毎月頑張って作業する」

から、

「仕組みで効率化する」

という発想へ変わっていきます。


11. プログラミングをしなくてもプログラミング的思考は身につけられる

プログラミング的思考を身につけるために、必ずプログラミングを学ぶ必要があるわけではありません。

普段の仕事でも十分に練習できます。

たとえば、作業マニュアルを作ってみるだけでも、

「どんな作業に分けられるか」

「どの順番でするのか」

「例外の場合はどうするのか」

と考える必要があります。

これは、分解や順序立ての練習です。

Excel関数もよい練習になる

ExcelのIF関数では、

「もし○○ならA、そうでなければB」

という条件を考えます。

これも、処理を論理的に整理するトレーニングになります。

生成AIへの指示でも練習できる

生成AIに指示するときも同じです。

「案内文を作って」

ではなく、

「新入社員向けの案内文を作ってください。専門用語を使わず、300文字程度で、目的・手順・注意点の順にまとめてください」

と伝えます。

目的や条件、順番を整理することで、AIからも希望に近い回答を得やすくなります。


12. まとめ|プログラミング的思考は問題を整理し、改善する力

プログラミング的思考という言葉から、「ITに詳しい人だけが必要なもの」と感じる方もいるかもしれません。

しかし、その本質はとても身近です。

この記事では、プログラミング的思考を次の5つの要素に分けて紹介しました。

分解
問題の細分化

順序立て
効率化

抽象化
本質化

一般化
ルール化

分析・シミュレーション
予測、問題解決

これらの考え方は、Excel、業務改善、マニュアル作成、DX、生成AIの活用など、さまざまな仕事に応用できます。

プログラミング的思考とは、コンピューターのように考えることではありません。

複雑な問題を整理し、再現できる形で解決する力です。

まずは普段の仕事の中で、

「この作業はもっと小さく分けられないか」

「毎回同じように行っている部分はないか」

「もっとほかの仕事にも使える形にできないか」

と考えてみてください。

その小さな問いかけが、プログラミング的思考を身につける第一歩になります。

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