はじめに|「自分には才能がない」と思う前に

「プログラミングは才能がある人しかできない」
そう思っている人は多い。
実際、プログラミングを始めてみたものの、途中で挫折する人はかなり多いと思う。
Pythonの入門動画を見たけど、結局何も作れなかった。
エラーが出た瞬間に、何をすればいいか分からなくなった。
環境構築だけで疲れて、そのまま放置した。
コードを写して動かしたけど、「で、これは何に使うの?」となった。
そして最後に、こう思ってしまう。
「自分にはプログラミングの才能がない」
でも、私は少し違うと思っている。
もちろん、プログラミングにも向き不向きはある。
好きな人と苦手な人がいるのは当然だ。
ただ、多くの人がつまずいているのは、才能の問題というより、入り口の問題だと思う。
何を作るのか分からない。
最初の成功体験が遠い。
エラーを見た瞬間に、自分には無理だと思ってしまう。
この状態でプログラミングを始めると、かなりの確率で挫折する。
逆に言えば、最初の入り口さえ間違えなければ、普通の会社員でもプログラミングは十分に武器になる。
特に、現場で働く人間にとって、最初の一歩として強いのがExcel VBAだ。
VBAは古いと言われることもある。
たしかに、今ならPythonや生成AI、Power Automateなど、他にも便利な選択肢はたくさんある。
それでも私は、会社員が最初にプログラミングを学ぶなら、VBAはかなり強い入口だと思っている。
理由はシンプルだ。
仕事の面倒な作業を、すぐに消せるからだ。
プログラミングで挫折する人が多い理由
プログラミングで挫折する人は、能力が低いわけではない。
むしろ、真面目に勉強しようとしている人ほど挫折しやすい。
なぜなら、最初から「勉強」として始めてしまうからだ。
たとえば、Python入門。
変数、条件分岐、繰り返し、関数、リスト、辞書、クラス。
もちろん、どれも大事だ。
でも、初心者の段階でこれらを順番に学んでも、なかなか面白さを感じにくい。
理由は簡単で、自分の困りごととつながっていないからだ。
コードを書いても、何に使えるのか分からない。
動画を見ている間は分かった気がする。
でも、いざ自分で作ろうとすると手が止まる。
これでは続かない。
プログラミングは、暗記科目ではない。
本来は、何かを解決するための道具だ。
だから、
「この作業を楽にしたい」
「この転記作業をなくしたい」
「このミスを減らしたい」
「毎回同じ資料を作るのが面倒くさい」
こういう具体的な目的がある人の方が、圧倒的に伸びやすい。
逆に、目的がないまま学ぶと、プログラミングは一気に苦行になる。
何を作ればいいのか分からない。
エラーが出ても、直す理由がない。
動いたとしても、感動がない。
これでは、才能以前に続ける理由がない。
才能より大事なのは「作りたいもの」があるかどうか

プログラミングには才能が必要なのか。
私は、最初の段階では才能よりも、作りたいものがあるかどうかの方が大きいと思っている。
たとえば、仕事で毎回30分かかる作業があるとする。
Excelの表から必要な情報を拾う。
別のシートに転記する。
決まった形式に整える。
印刷用の資料を作る。
毎回同じような確認をする。
こういう作業は、現場には山ほどある。
そして、こういう作業こそ、プログラミングの出番だ。
「これ、自動でできないかな?」
この疑問が出てきた時点で、かなり強い。
なぜなら、目的がはっきりしているからだ。
勉強のためにコードを書くのではない。
自分の仕事を楽にするためにコードを書く。
この違いはかなり大きい。
目的があると、エラーが出ても粘れる。
分からないことがあっても調べる。
動いたときの感動も大きい。
そして、一度でも自分の仕事が楽になる経験をすると、プログラミングの見え方が変わる。
「プログラミングって、天才がやるものではなく、面倒な作業を消す道具なんだ」
そう思えるようになる。
ここまで来ると強い。
初心者がPythonで挫折しやすい理由
最近は、プログラミングを始めるならPythonというイメージが強い。
たしかにPythonは便利だ。
AI、データ分析、自動化、Webアプリ、スクレイピングなど、できることも多い。
私もPythonはかなり便利だと思っている。
ただし、完全な初心者が最初にPythonから入ると、挫折しやすい面もある。
理由は、最初の準備でつまずきやすいからだ。
Pythonをインストールする。
エディタを用意する。
ライブラリを入れる。
フォルダ構成を考える。
実行方法を覚える。
エラーが出たら原因を調べる。
これだけで、初心者にはかなり重い。
もちろん、今はChatGPTに聞けばかなり助けてくれる。
それでも、最初の段階では「自分はいま何をしているのか」が分からなくなりやすい。
さらに問題なのは、Pythonで何を作るかだ。
目的がないままPythonを学ぶと、入門書や動画の内容をなぞるだけで終わりやすい。
print文を動かす。
じゃんけんゲームを作る。
簡単な計算をする。
リストを操作する。
勉強としては大事だ。
でも、仕事の改善につながる実感がないと、なかなか続かない。
だから、初心者がいきなりPythonに行くこと自体は悪くない。
でも、仕事でExcelをよく使う会社員なら、最初はVBAの方が成功体験を作りやすい。
最初の一歩にVBAが向いている理由

VBAを古いと思う人はいる。
たしかに、今っぽい技術ではないかもしれない。
SNSで映えるような技術でもない。
エンジニア界隈では、あまり格好いい扱いをされないこともある。
でも、現場の改善では話が違う。
現場では、格好よさよりも動くことが大事だ。
VBAの強さは、Excelがあればすぐに始められるところにある。
多くの会社では、Excelが普通に使われている。
申請書、管理表、点検表、集計表、作業記録、手順書、リスト。
現場の業務には、Excelが深く入り込んでいる。
だから、VBAで少し自動化できるだけで、効果が出やすい。
たとえば、
毎回同じ形式の資料を作る。
複数シートから情報を集める。
入力漏れをチェックする。
ファイル名を自動で作る。
決まった場所にデータを転記する。
ボタンひとつで印刷用シートを作る。
こういう作業は、VBAと相性がいい。
しかも、成果が見えやすい。
今まで30分かかっていた作業が、数秒で終わる。
手作業のミスが減る。
毎回同じ作業をしなくてよくなる。
この「動いた」「楽になった」という体験が、初心者には何より大事だ。
最初から難しいことをしなくていい。
10行でもいい。
ボタンひとつでもいい。
シートをコピーするだけでもいい。
決まったセルに日付を入れるだけでもいい。
それでも、自分の仕事が少し楽になれば十分だ。
その小さな成功体験が、次の学習につながる。
私も最初はVBAだった
私も、最初からPythonが書けたわけではない。
入り口はExcel VBAだった。
当時は、仕事の中に面倒な手作業が山ほどあった。
同じような書類を何度も作る。
Excelの表から必要な情報を拾う。
別の様式に転記する。
入力ミスがないか確認する。
似たような作業を、毎回人力で繰り返す。
正直、かなりしんどかった。
そこで、VBAを使って少しずつ自動化を始めた。
最初は本当に小さなものだった。
ボタンを押したら、決まったセルに値が入る。
別シートにデータがコピーされる。
ファイル名が自動で作られる。
その程度のものでも、初めて動いたときはかなり感動した。
「今まで手でやっていた作業、これで終わるのか」
そう思った。
そこから、プログラミングに対する見方が変わった。
それまでは、プログラミングは特別な人がやるものだと思っていた。
数学が得意な人や、エンジニアのような人が使うものだと思っていた。
でも実際は違った。
自分の目の前にある面倒な作業を消すための道具だった。
この感覚を持てたことが大きかった。
VBAで小さな成功体験を積むと、次はもっと大きなことをやりたくなる。
もっと早くできないか。
もっとミスを減らせないか。
別の作業にも使えないか。
Pythonならもっと便利なことができるのではないか。
そうやって、自然に次の技術へ進める。
私にとって、VBAは単なる古いマクロではなかった。
プログラミングの面白さを知る入口だった。
エラーは才能不足の証明ではない
プログラミング初心者が一番つらいのは、エラーだと思う。
コードを書いた。
動かした。
エラーが出た。
何を言っているのか分からない。
この瞬間に、多くの人が心を折られる。
そして、こう思ってしまう。
「やっぱり自分には才能がない」
でも、エラーは才能不足の証明ではない。
単に、機械がこちらの指示を理解できなかっただけだ。
カンマが抜けている。
スペルが違う。
変数名が違う。
対象のシート名が違う。
ファイルの場所が違う。
想定していない空白がある。
こういう小さなズレで、コードは普通に止まる。
プログラミングができる人も、エラーを出さないわけではない。
むしろ、普通にエラーを出す。
違いがあるとすれば、エラーが出たときの受け止め方だ。
初心者は、エラーを見ると「自分がダメだ」と思いやすい。
慣れている人は、エラーを見ると「どこがズレているのか」と考える。
エラーは人格否定ではない。
ただの修正ポイントだ。
この感覚に変わると、かなり楽になる。
特に今は、ChatGPTのようなAIにエラー文を貼り付ければ、原因や修正案を教えてくれる。
昔よりも、エラーを乗り越えるハードルはかなり下がっている。
だからこそ、最初から完璧に理解しようとしなくていい。
小さく作る。
動かす。
エラーが出る。
直す。
また動かす。
この繰り返しで十分だ。
AI時代に必要なのは、コードを書く力だけではない
今は、AIがコードを書いてくれる時代になった。
ChatGPTに聞けば、VBAのコードもPythonのコードも出してくれる。
エラーの原因も説明してくれる。
処理の改善案も出してくれる。
そう考えると、
「もうプログラミングを学ぶ必要はないのでは?」
と思う人もいるかもしれない。
でも、私は逆だと思っている。
AI時代だからこそ、最低限のプログラミング感覚は持っていた方がいい。
なぜなら、AIがコードを書いてくれても、何を作るべきかを決めるのは人間だからだ。
どの作業が無駄なのか。
どこを自動化すれば効果が大きいのか。
入力は何か。
出力は何か。
例外は何か。
現場で本当に使える形になっているか。
ここは、AIだけでは決められない。
AIは優秀な助手だ。
でも、目的を決めるのは人間側だ。
つまり、AI時代に強いのは、ただコードを書ける人ではない。
課題を見つけて、形にできる人だ。
現場で困っている作業を見つける。
それを小さなツールに落とし込む。
AIにコードを書かせる。
実際に動かして直す。
使う人に合わせて改善する。
この流れを作れる人は、かなり強い。
コードを全部自分で書けなくてもいい。
でも、何を作りたいのかを説明できる必要はある。
出てきたコードが何をしているのか、ざっくり読める必要もある。
動かないときに、どこを疑えばいいかも分かった方がいい。
そのための入口としても、VBAは悪くない。
Excelという身近な場所で、プログラミングの基本を体感できるからだ。
プログラミングができる人の特徴
プログラミングができる人は、特別に頭がいい人だけではない。
もちろん、すごいエンジニアの世界では才能の差もあると思う。
高度なアルゴリズムや大規模開発の世界では、向き不向きも大きいはずだ。
でも、会社員が自分の仕事を改善するレベルなら、必要なのは少し違う。
プログラミングが伸びる人には、いくつか共通点がある。
まず、面倒くさがりであること。
これは悪い意味ではない。
むしろ、毎回同じ作業をするのが嫌だから、自動化しようと考える。
次に、すぐ試すこと。
完璧に理解してから始めようとすると、いつまでも始まらない。
とりあえず動かして、失敗しながら直す人の方が伸びやすい。
そして、目的があること。
「この作業をなくしたい」
「このミスを減らしたい」
「早く帰りたい」
こういう動機はかなり強い。
きれいな理由じゃなくていい。
むしろ、切実な理由の方が続く。
私自身も、「技術者として成長したい」という高尚な理由だけでVBAを始めたわけではない。
面倒な作業を減らしたかった。
ミスを減らしたかった。
早く帰りたかった。
その結果として、プログラミングが武器になった。
まずは小さな自動化でいい
プログラミングを始めるとき、いきなり大きなものを作ろうとしなくていい。
業務システムを作る必要はない。
アプリを作る必要もない。
AIツールを作る必要もない。
最初は、ものすごく小さくていい。
たとえば、
ボタンを押したら、今日の日付を入力する。
入力漏れがあるセルを色付けする。
必要なシートだけ印刷する。
ファイル名を自動で作る。
別シートにデータをコピーする。
決まった形式に表を整える。
このくらいで十分だ。
むしろ、最初はこのくらいがいい。
小さいものは完成しやすい。
完成すると嬉しい。
嬉しいと、次もやりたくなる。
この流れを作ることが大事だ。
逆に、最初から大きなものを作ろうとすると失敗しやすい。
あれもやりたい。
これも入れたい。
例外処理も必要。
画面も作りたい。
他の人にも使わせたい。
こうなると、一気に難しくなる。
最初は、自分だけが使う小さなツールでいい。
自分の作業が少し楽になれば、それで成功だ。
まとめ|才能がないのではなく、入口を間違えているだけ
プログラミングに才能は必要なのか。
私は、少なくとも最初の一歩に関しては、才能よりも入口の設計の方が大事だと思っている。
目的がないまま学ぶと挫折しやすい。
最初の成功体験が遠いと続かない。
エラーを才能不足だと思うと心が折れる。
でも、仕事の中にある面倒な作業を1つ選び、それを小さく自動化するところから始めれば、景色は変わる。
特に会社員なら、Excel VBAはかなり強い入口になる。
Excelがあれば始められる。
仕事に直結する。
成果が見えやすい。
小さな成功体験を作りやすい。
VBAで小さな自動化ができるようになると、プログラミングは急に身近になる。
そこからPythonに進んでもいい。
Power Automateを使ってもいい。
ChatGPTにコードを書かせてもいい。
大事なのは、最初から完璧なコードを書けることではない。
自分の仕事の中から、改善できる場所を見つけること。
小さく作って、動かしてみること。
エラーが出ても、自分の才能を疑わずに直していくこと。
プログラミングは、天才だけのものではない。
少なくとも、現場の面倒な作業を減らすためなら、普通の会社員でも十分に使える。
才能がないのではない。
入口を間違えているだけだ。
まずは、自分の仕事の中にある「だるい作業」を1つ選ぶ。
そこからでいい。
プログラミングは、勉強ではなく、仕事を楽にするための武器になる
関連記事




