VBA→JavaScriptと入っていった私が感じたこと
プログラミング言語に触ったきっかけ
私が多少でもコードを書いて何らかのプログラムを作ったことがあるのは、VBAとJavaScript(加えてGoogle Apps Script)だけです。
以前、単純作業が多い古臭い会社に勤めていたもので、そこでの業務効率化のためにVBAを始めていったらものすごくハマってしまい、その後プログラミングそのものに興味を持ち始めました。
業務で必要だったわけではありませんが、その後趣味としてオンラインで学習できるツールでJavaScriptの文法を勉強しました。JavaScriptをやろうと思ったきっかけはもう覚えていませんが、とりあえずなんでもいいからプログラミング言語というものを触ってみたいという好奇心と、ブラウザとメモ帳さえあればできるというわかりやすさだったでしょう。
このときが確か2013年か2014年。JavaScriptだけ覚えても意味がないのでHTMLとCSSの基礎中の基礎も勉強しました。そのとき使ったのがかの有名なProgateです。今や有名になりましたが、まだこのときはサービス最初期の頃でした。
JavaScriptの方は、Jeek CodeStudyという無料のオンライン学習サービスで勉強しました。おそらくこれは当時使った形では、現在もう残っていないかと思われます。
最初に作ったものはもはや覚えていませんが、じゃんけんのプログラム(グーチョキパーを2つ表示させ、その組み合わせで勝ち、負け、あいこの文字をブラウザ上に表示させる程度のもの。もちろんCSSなどは使っていない)を書いた記憶があります。おそらく少し勉強すれば小学生でも書けるようなものです。
そんなこんなで触り始めたのはもうだいぶ前ですが、継続的にプログラミングをしていたわけでなく途中一切やっていない時期も多かったので、2019年現在、私は対して上達してません。
JavaScriptに触って感じたこと
本題です。VBAの簡易なものと、それなりにしっかりしている言語であるJavaScriptの2つを触ってみて、当然ですが結構違いがあるなと思いました。JavaScriptの数%も理解していませんが、クソ素人目からみて私が感じる印象は以下です。
JavaScriptのforループの書き方に感動する
今でも毎回思うのですが、VBAのforループを書くとき
for i = 1 to 10
next i
のようにカウンタの変数が必要(←他の言語でもそうですが)になるわけですが、そのカウンタ変数をforループのために、forループの外に記入するのがどうも気になります。
そんな中
for(var i = 0; i < 10;i++){
}
カウンタ変数の宣言をforループの中に入れられる書き方には気持ちよさを感じました。
{}のかっこで挟めばよいのが楽
これもしょうもないことなのですが、VBAだとIfをEnd Ifで閉じたり、For LoopをNextで閉じたりするのもなんか好きではありません。無駄に行数とっているのと、あと結構閉じ忘れるのですよね。
配列に関するメソッドの豊富さに感動
JavaScriptをやっていてVBAのような言語と決定的に違うと思ったのが、配列の操作ですね。それはJavaScriptが充実しているのでなく、それがプログラミング言語の当たり前であって、VBAがなさすぎる。
ただ、それはVBAへの文句ではありません。VBAの場合はまともな使い方をしていれば配列の操作をあまり必要としないんですよね。セルに書き出した内容に対して操作を加えることが多いので、配列の変数上でごにょごにょしたりするケースは少ないように思います。私のようにVBAを使って変なプログラムや変なツールをつかっていると「配列のあの操作ができれば・・!」なんてしょっちゅう思うのですが、それはむしろ異端です。
VBAやJavaScriptから入ったことを振り返って
たまに、ネット界隈でプログラミング言語は何から始めたほうが良いかという話題が上がります。これはどの方も「自分がやりたい目的次第」と答えるでしょう。ただ、その中でたまにJavaScriptを推す人がいて、その理由は環境構築が一切不要だからです。ブラウザとメモ帳があればプログラムを書いて動かせるというのは本当にすごいと思います。
VBAもエクセルだけあればよいという意味で同様ですが、VBAの言語の目的はエクセル操作に関することが中心なので、業務でエクセルを頻繁に触っている人なら興味を持つでしょうが、そうでない人にはあまり響かないでしょう。
私自身は他のプログラミング言語を触ったことないので何から始めればよいかというのはさっぱりわかりませんが、VBAもJavaScriptも触っておいておかったなあと思います。コンパイルもいりませんので、自分の書いたコードすぐに何らかの形で結果としてすぐ動くというのは、それだけでとても嬉しいものでした。
程度はまったく大したものではありませんが、プログラミングはやっていて楽しいです。今からでもなりたいなぁといつも思っているくらいです。ただ、自分は書くのにも時間がかかり理解も遅くあまり向いてないと思うのでなれないでしょうけど。
でも趣味として今後ものんびりとちょっとしたプログラムを書いていこうかなと思います。(本職があまりにも多忙で趣味の時間が取れないというのが悩み)