よく使うプログラミングの道具

コンピュータを使うために必ずプログラミングが必要になるということはありませんが、同じような作業を何度もマウス操作+キーボード操作で行うのは、うっかりした間違いを起こすことが多いでしょう。間違えずに同じような操作を確実に行いたいなら、プログラミングによる自動化がうってつけの分野です。

まったく同じ操作を繰り返すばかりでなく、扱うデータの特徴にあわせて、少しづつ異なる操作をする、というときも同じです。そこに法則やルールさえ存在すれば、それにあわせて操作を自由に変えられる、というのはプログラミングのいいところです。

最近は、プログラミングのための道具がとても充実しており、覚えるべきことは最小限にして、すぐに高度な自動化を達成することができます。すこし調べるだけでたくさんの作例を見つけられますし、AIが記述を手伝ってくれる、なんてことさえ期待できるようになりました。もちろん、本当にうまくこの仕事をこなすにはそれなりの経験や熟練が必要になるのですが、ともかく思い立った時にすぐ試してみることができるというのは、たいへんよいことです。

さて、「プログラミング」とさきほどから連呼していますが、本格的なプログラム言語は、実はほとんどの場合必要にはなりません。

ここで「本格的」と呼ぶのは、コンピュータの根幹にまで分け入って動作を制御できるようなもので、これを使えばある意味「なんでもやれる」プログラミングが達成できます。C言語なんかがその代表格で、一般に、記述すべきプログラムは複雑で大量なものになりがちです。それだけ、プログラム作成に意図しない誤りを混入させやすい、という特徴にもつながりますし、「なんでもできる」プログラム言語は、別にいいことばかりでなく、長所も短所もあると知っておきましょう。

また、基幹系の大きなシステムにおいても、「本格的」プログラム言語が使われている可能性があります。高速な動作を期待されることが多いですから、こういう場合も「本格的」の出番だったりするわけです。

本格的なものに対して、もっと簡易的なプログラム言語が存在します。

「簡易的」だと、作るのが簡単で短い一方、やれることは限られているし、動作も、極めて高速とは行きません。一般にこういうプログラムは「スクリプト」とも呼ばれがちです。でも、冒頭に書いた「似たような操作を何回も繰り返す」というくらいの用事なら、きわめて効率的にこなすことができるものです。

筆者がある目的を達成するためによく使うプログラミング言語は、VBA、VBScript、PowerShell、Python、ときどきJavaScriptといったところでしょうか。どれも、とてもありふれたものです。他にも必要があれば使いますが、そんなにたくさんの種類を覚える必要もないでしょう。

VBAは、Microsoft Office製品であつかうドキュメント、特にExcelと組み合わせて使われます。Excelの中で動くプログラムといった感じのものが実現できます。データ操作を自動化するとき、そのデータはExcelの上にそもそも書かれているといったことも多いですから、VBAを使う選択になることはとても自然です。

VBScriptは、VBAとほとんど同じ文法の言語ですが、Windowsの動作を自動化したいときに使われます。今後、この言語はなくなっていく方針であるとマイクロソフト社から発表がありました。

今後、VBScriptの代替になるのが、PowerShellと考えてよいのかなと思います。これもWindowsの動作を自動化するために設計されています。書き方がVB系とかなり異なるのですが、Windowsにもともと準備されている豊富な機能をかなり自由に使えるため、自動化のための出番が多いです。

Pythonは、Windowsの自動化のために生まれたわけではありませんが、汎用的な目的に使えるプログラム言語として、とてもポピュラーです。Pythonの実行環境にはたくさんのライブラリ(再利用できるプログラム部品)がついてくるので、複雑な動作をするものを、思いがけない短さで作ることができるときがあります。

JavaScriptは、もともとはウェブブラウザの上で動くことを目的に設計されたプログラム言語です。今はそれ以外の使われ方もたくさんありますが、筆者にとっては、ウェブページを何かの用事で作るときに、やりたいことを効率的に達成するため、ちょっとしたJavaScriptを書いて埋め込む、ということが典型的です。ウェブページ自体は、HTMLという言語(これもある意味プログラム言語なのかな)で記述します。

それぞれの言語の特徴は、また別に説明をしていくかもしれません。