本当に楽しくプログラミング入門をする方法(VBAから)

なにか新しいことを身につけるのって楽しいですか?

例えば、プログラミング。私にとっては、楽しい半面、苦行になってしまったりしていました。

“Programing is fun.”

とか画面に表示してもみても全く苦痛で、間違える自分にイライラしてしまって、やらなくなるとかを繰り返して・・・

しかし!しばらく前にExcelのVBAについて改めて勉強し、ちょっとは身につけることができました。

ある程度できるようになると思っていたより100倍ぐらい役立ち、かつ学ぶのが楽しいスキルでした。

結果がすぐに目に見えて役に立つことから、普段からExcelを使う人にとってはプログラミングの入門としてもとても良さそうです。

とはいえ、やはり「言語」なので使用頻度が下がると忘れてしまいます。

そこで、自分が忘れてしまったときのため、ひいてはこれから身に付けたい人のために身に付け方を「学習のレシピ」としてメモしておきます。

なぜ身につけるの?

children-593313_640

「なぜ」を考えとくと後で役立ちそうなので、まずはそれを書いておきます。
すでに「なぜ」という理由が明確だったり強力だったりする人は読み飛ばして下さい。

1.(特に定形の)仕事の効率化ができ、大事な仕事に集中できる
私がVBAを身につけようと思った当時、Excelを多用する仕事をしていました。毎日、深夜まで残業するような日々だった一方で、定形の作業にも大分時間を取られていました。「これは人間がやる作業じゃない」と思いながら・・・
この定形の部分の効率化にとても役立つのがVBAでした。

2.「できる人」が持っているスキルである
ちょうどそのころ、私の身の回りで私の尊敬する「仕事のできる人」がVBAが使えるということを知りました。しかも二人も。一人は大手コンサルファームの方、もう一人は金融関係のお仕事の方で、いずれもVBAを使うことで大幅に作業効率を上げられたとか。

ExcelのVBAを使うということは、たいてい自らの業務の効率化だと思います。そのためには、業務内容を整理する必要があります。また、当然、プログラミング言語なので、論理的に考えることも必要です。この二人はもともとそういう能力が高そうですが、逆に言うとこれらの能力も鍛えられていくように思います。

ちなみにこのお二人は、ともに論理的に考え、決断していくだけではなく、心にも余裕がある方々だったのもポイントでした。

3.プログラミングの入門としてうってつけである
私は、一応IT業界で働いてきたので、個人的にプログラミングができることに憧れを持っていました。

上記の様に興味を持っていた際に、VBAについて調べていると、「これってプログラミング言語習得の入り口としてもいいんじゃない。」とこちらのブログに書いていました。

【VBAエキスパート Excel スタンダード】なんでもっと早く受けとかなかったのか…
http://blog.kentei-uketsuke.com/suzuki/archives/1720

要は、すぐに仕事に役立つ!と思えることが大きいのだと思います。
また、VBAには資格制度もあり、「自分は一応このレベルまではできる」というマイルストーンとしても役立ちそうです(私は、Excel VBAの「ベーシック」と「スタンダード」両方取ってみました)。

また、最近は子供にプログラミングを学ばせようという動きがありますが、自分自身が全くできないものに子供が興味を持つようにするのも中々難しそうです。まずは、自分が学んで見るきっかけとしても良いかと思います。

なお、Excel VBAを身につけることの効果については、下記の記事に詳しく書かれています。ご自身なりのなぜ学ぶのかを明確にするのに役立つと思います。

エクセルVBAとは
https://www.exvba.com/aboutvba.php

身につける際のハードルは?

small-dog-1406297_640

さて、実際にプログラミング言語を学ぼうとする時にいくつかハードルがあります。

「環境作りが大変」
「仕事とかですぐ役立たない」
「コードのどこが間違えているのかわからなくてイライラする」

これらのハードルに対して、なんとか環境を作り、役立つかわからないけど学んでみても、せっかくコードを書いても、エラーが出て動かない!!!

そうこうしているうちに、モチベーションが下がっていきます。
日々学んでいたのに気づくと、いつの間にかやらなくなっている・・・

例によってですが、私の経験です。これ。

Excel VBAの場合これらのハードルは、多くの人の場合、結構簡単に乗り越えられると思います。

1.環境作りが大変
先に書いたとおり、プログラミングって、仕事で使っていたり、ガッチリした趣味じゃない限り、プログラミングができる環境を作るのがめんどくさい事が多いです。
しかし、Excel VBAの場合、ExcelがインストールされているWindowsマシンがあればすぐできます。

2.すぐ役立たない
これもプログラマーじゃない限り、学んでもすぐに役立たなかったりします。
今は、プログラミングを学ぶのに本だけではなくWebで学習環境まで整えられています。しかし、そこで学んでもすぐに仕事などで使える人じゃないと「役に立った」という感覚が得られにくいものです。

そして、人間も動物なので、「できた!」とか「役立っている!」という感覚やフィードバックがないとやる気が出なくなります。

Excelの場合は、多くの人が仕事で使っており、かつ定形の作業というのは大抵あるものなので、何かしら役に立ちます。その役立ち度がすごいのですよ。これがやる気を高めてくれます。

3.プログラムのどこが間違えているのかわからなくてイライラする。

「しかも、すごく簡単なことのはずなのに全くわからない!」

というのも大幅にやる気を削いていく要因になります。

これが多分、私がプログラミングを学ぶ際の最大の障壁でした。
そして、他の人の話を聞くと、やはり多くの人に取っての障壁でもありそうです。

できるようになっていく人は、みんな無意識にここを乗り越えていくのだろうと思います。しかし、私の様にできるようにならない人は、ここをぐるぐるしてそのうち辞めてしまうのでしょう。

今回は、この3つ目のハードルを乗り越えられない原因と解決策を書いていきます。

3つ目のハードルを乗り越える方法

small-dog-1406299_640

まず、この3つ目のハードルが乗り越えられない理由です。

これは、なかなか気づけなかったのですが、というかある程度できるようになって初めて気づいたのですが、すごく単純です。

それは、基礎力がないから。
この基礎力についてもう少し分解して言うと、基礎的なルールや書き方の手順を「身に付け」られていないから。

この基礎力がないとので、基本的なコードを書く(プログラミングをする)際にもアタマを使う必要があります。それなのに、さらに高いレベルのことをやろうとするので、いっぱいいっぱいになり、ついていけなくなったりします。

これを中学校で学ぶ英語に例えてみると、主語の後に動詞が来るという英語の並びをちゃんと身につける前に、関係代名詞を使おうとするようなものです。しかもなんだかいろいろな修飾語までついているやつ。

中学生になって初めて英語を学ぼうとする時に、いきなり
“I have a pen whiich sticked into a pineapple and its also connnnected to an apple stocked with a pen, so there are some people on the Internet who call it pen-pineapple-apple-pen.”

なんて自分で書いてみたりするわけです。当然、普通は書けないし、なんとかお手本とかを見ながら書いてもなんだか文法的やスペルが間違えがちです。

こんな状態で、
「代名詞を使うと前の文章で言っていたことをいちいち繰り返さなくてもOKだから便利でしょ?」
とかいう素敵なアドバイスをされても何が便利なのかわかりません。むしろ、ただ複雑さを増す要因でしかありません。

だって、「主語+動詞+XXX」みたいな構造自体おぼつかない状態なんですから。

というわけで、基礎力を「身につける」ことって大事なわけです。基本的なルールを覚えるということを含めてね。

じゃあ、基礎力(とかルール)を身につけるにはどうしたら良いの?というのを書いていきます。

基礎力を「身につける」

small-dog-1406296_640

コレもやっぱりあたりまえのことです。

で、まぁ、それは、練習です。トレーニングです。
「結局それかよ」とか思ってももう少しだけお付き合いください。結構楽しくやる方法があります。

上記の問題は、「For文は、分かった。次!」とやってしまうところなのですよ。

でも「分かった」だけだと足りません。

「この場合は、For文で、実際書くとこういう感じで」というのが自然に、半自動的に書けるようになっておくのがポイントです。

そのためには、「分かった」状態から何度も練習をしていきます。(過剰学習、Over Learning)
コツは、最初はゆっくりと、丁寧にやること。「なんでこう書くのか」などを味わいながら。

そして、ある程度慣れてきたら今度はサクサク書けるようにしていきます。時間を図ってもいいかもしれません。(熟達訓練、Fluency Building)

ここまで行くと半分自動的にFor文が使えるようになります。

そして、多少状況が変わっても、あまり迷わずにサクサクFor文が書くことができるようになります。

しかも、この状態になると、For文に関してはコードをサクサク書いていく事ができ、それが結構気持ち良くなっているはずです。

これは、気のせいではなくこういう反復により、意識的な動作を無意識にできるようなった行動を行うことでドーパミンが出るからだとか(出典などは忘れたので見つけたら補足します)。

ちなみに、さっきの英文で言うと
“I have a pen.”を、繰り返し、そして、”pen”を”pineapple”に変えて”I have a pineapple.”というのを練習し、”I have a Pen-Pineapple-Apple-Pen”といえる様になる感じですかね。
先に書いたとおり、最初は言いにくかったこのフレーズがスムーズに言える様になるとちょっと気持ちいいわけです。
これも”PPAP”がバイラルになる理由の1つかもしれませんね。
参考)http://www.bbc.com/news/world-asia-37480920

さて、じゃあこれを「具体的にどうやったらいいのか?」について、今の段階での私のおすすめの方法を書いておきます。

続きは、こちら「一ヶ月でEXCEL VBAを身につける学習手順」


コメント

コメント

「本当に楽しくプログラミング入門をする方法(VBAから)」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です