業務改善・業務自動化に取り組む非エンジニア事務職の為に、自動化に向いたプログラミング言語を厳選して紹介します。業務をこなすだけでなく業務改善ができるワンランク上の会社員を目指す事ができます。
目次
業務改善のために、初めて勉強するプログラミング言語を選ぶ
ネットで何のプログラミング言語を学ぶか調べる罠
初めて勉強するプログラミング言語を何にするか決める前に、挫折原因となる罠を見ておきます。それはネットでプログラミング言語を調べて「コレがよさそう」などと考えてしまうことです。ネットで調べて出てくるプログラミング言語は、エンジニアになりたい人向けのプログラミング言語の紹介です。プログラミング言語の学びやすさやできる事、どんな技術に使われているのかといったことがランキング形式で解説されているサイトを沢山見かけます。
一方、非エンジニア向けのプログラミング言語の紹介記事は見かけません。その点を意識しましょう。非エンジニアがプログラミング言語を学ぶ目的は目の前の業務を改善することです。そこを忘れてしまうと、選択する言語を誤ってしまい、いつまでたっても業務で使う機会が無く、いつの間にか勉強を辞め、習得を諦めることにつながって言ってしまいます。
初めてのプログラミング言語の選び方
始めて学ぶプログラミング言語を選ぶ方法は決まっています。それは、普段仕事で時間が取られている作業や、今後取り組みたい改善対象はどんな業務かを確認することです。これを確認することでどのプログラミング言語を選択するかは自ずと決まります。例を挙げると下のようになります。
- エクセルの集計作業を自動化したい
- Google Suiteで利用しているGmailやGoogleスプレッドシートの作業を自動化したい
- Webからのデータ取得やPDFの読み込みなどの作業を自動化したい
- ユーザーの要求に応じて動作するWebサービスを作りたい
メジャーな例を挙げるとこのような感じです。自分の場合に置き換えて考えてみて下さい。
今挙げたような作業はいろいろな方法で実現する事ができます。その中でも最もその作業を改善/自動化しやすいプログラミング言語を選択するというのが、初めて勉強するプログラミング言語を選択する方法です。ここまで読まれた方は改善したい
業務が既に明らかになったので、プログラミング言語選びは半分終わりました。あとは、具体的に自分のニーズに当てはまる言語と入門書を選べばOKです。
オススメ入門プログラミング言語3選+ 厳選入門書~非エンジニア向け~
それでは非エンジニア事務職の方の業務改善に役立ちやすいプログラミング言語を3つ紹介します。さらに、それぞれのプログラミング言語ごとに1冊目に購入すべきだと思われる入門書を厳選して紹介します。あなたの日常の業務を思い浮かながら読んでみて下さい。
Excel VBA (Visual Basic for Applications) ~エクセルの業務改善に最適~
日常的にエクセルを利用している割合が多い人は是非とも一番目に身に付けたいプログラミング言語がExcel VBAです。手作業で行う事ができるエクセル操作はほぼ全てVBAでプログラミングする事ができます。また、エクセル作業は似たような業務が多い為、VBAは勉強の量に対して実力を生かす機会がとても多いプログラミング言語と言えます。アウトプットの機会を日常業務の中で得やすいため、とても挫折しにくいプログラミング言語と言えます。また、インターネット上でもたくさんの情報がありますし、書籍もたくさんあるので、分からないところが調べやすく、つまづきにくい点も重要です。
上級者になればエクセルだけで無く、PowerPointへのグラフの貼り付けやOutlookでのメール配信、インターネットからの情報の取得などエクセル以外のアプリケーションもかなりの程度操作できるようになります。ここまで来ると処理の幅がぐっと広がります。そのため、エクセル作業が多い職場では、エクセルVBAの勉強を始め、まずはエクセルの自動化を進め、実力が付いてくればエクセル以外のアプリを操作する方法を学んでいくというステップを踏むと良いと思います。私自身このステップを踏みました。
このプログラミング言語の1冊目としてオススメの本は【ストーリーで学ぶ Excel VBAと業務改善のポイントがわかる本】です。この本はストーリー仕立てで読みやすく挫折しにくい一冊となっています。<関連記事>に詳しい本のレビューを載せていますのでよろしければ参考にしてもらえればと思います。
<関連記事>
GAS (Google Apps Script) ~GmailやGoogleスプレッドシートの業務改善に最適~
GASはGoogleが提供しているGメールやGoogleスプレッドシートでの業務改善に最適なプログラミング言語です。マイクロソフトOfficeのアプリ(エクセル、パワーポイント、アウトルック等)をメインに使っている企業の業務改善にはVBAを使うのに対して、G Suiteや無料のGoogleアカウントで利用できるGoogle Apps(スプレッドシート、スライド、Gメール等)を使っている企業はGASを使う、といった感じです。
GASはJavaScriptという言語と基本部分が同じであるという特徴があります。JavaScriptはウェブサイトを閲覧するためのブラウザ上で動作させる為の言語です。GASはブラウザ上で動くのでJavaScriptと共通の文法があると言うことです。それに、Google Appsを操作する為の独特の機能を追加したモノを加え、ブラウザそのものを操作する機能をなくした物がGASです。GASを勉強する事によって、将来Webアプリを作る時にJavaScriptの知識がある程度ある、というメリットがあります。
このプログラミング言語の1冊目としてオススメの本は【詳解!Google Apps Script完全入門】です。とても基礎的なところから多くのイメージ図とサンプルプログラムで解説されています。そのため、JavaScriptはもちろんのこと、プログラミング自体が初めてでもスンナリと入門することが可能です。第6章のオブジェクトの仕組みが最初の山場となります。ここで挫折しないコツは、第8章以降の具体的なプログラムの解説と同時並行で読み進めることです。実はオブジェクトやクラス、インスタンスというのはプログラミングが初めてだと、なかなか理解しにくい概念です。
具体的に手を動かして、目の前のメールやスプレッドシートを動かしているうちに「そういうことか!」と分かってくると思いますので、第6章でつまづきそうな方は先に進んで、後から戻ってくればOK。後から戻ってくるとびっくりするくらいわかりやすいです。
Python ~フォルダの整理やPDFの読み込み、Webページの読み込みなど多岐に対応可能~
Pythonは汎用言語として有名なプログラミング言語です。VBAがエクセルなどのOfficeのアプリの操作用、GASがGoogle Appsの操作用だったのに対して、Pythonは様々なアプリを操作する事ができます。例えばPDFから文字を読み取って、基幹システムにアップロードするためのcsvファイルに変換して保存しておく、と言った様な業務の自動化が考えられます。基本的な文法はVBAやGASに引けを取らない簡単さです。
一方、VBAやGASと違って取り扱える対象が限定されていないため、操作したいモノを操作する為にモジュールやフレームワークと呼ばれるプログラムの塊を呼び出して使う場面が出てきます。この部分がVBAやGASより難しいと思います。プログラムの基礎文法自体は難しくありませんが、他のアプリの機能を自由に呼び出して使う事が難しいと言う事を理解しておくと、その場面になった時に挫折しにくいと思います。
このプログラミング言語の1冊目としてオススメの本は【いちばんやさしいPythonの教本】です。この本はPythonの第一の関門である環境設定から基本文法、サードパーティ製パッケージを使ったウェブアプリの入口までを解説しています。繰り返しや条件分岐(もしAの場合はBをする、Cの場合はDをすると言うような処理の分岐のこと)はこの本で確実に身に付けられます。ちゃんと手を動かしながら学ぶと言う原則を守れば、この本を使えば基礎文法までなら挫折せずに身に付けられるはずです。
注意しなくてはいけないのは、この本はPythonの基礎文法が身につくところまでだと言うところです。VBAやGASの場合はアプリ特化型のプログラミング言語なので、基礎文法が身につくということがそのまま、ある程度の自動化ツールを開発することができるようになるのと同じ意味でした。Pythonの場合は自動化をするためには、Pythonの基礎文法に加えて操作したい内容に応じたモジュールの利用が必要となります。そこで、カタログ的にいろいろな作業のサンプルが勉強できる良著を追加で紹介します。
<参考:1冊目のPython入門書の後に自動化の実務に向けてオススメの本>
2冊目でおすすめは、「退屈なことはPythonにやらせよう」です。全くの素人ではやや難しい印象ですが、丁寧に読み込んで、サンプルコードを写経していくうちに、Pythonが自分の手になじんでいく感覚が身についていきます。私自身がそうでした。
Pythonは機械学習など高度な技術にも使われますが、エクセルやPDFの文字の読み込みなど比較的親しみやすい内容にもばっちり対応できます。Webからの情報取得なども可能です。この本はそういった実務的な課題を自動化するのに取り込むべきモジュール名や使い方が解説されているため、自動化カタログや逆引き辞典的な使い方ができる本です。前から読み進めるのではなく、自動化したい作業を引いて調べる事ができます。
また、これらのサンプルコードを写経して基礎的なモジュールの使い方を学んだり、内容を書き換えて実務で使えるように改造することも可能です。実際、プログラミング言語を身に着けるにはサンプルコードを写経するだけでなく、実務で使えるように書き換える、改造するという行為が大変勉強になります。辞書的としても勉強用としても重宝する一冊です。手元に置いておきたい一冊です。(重くて持ち運びには不向きです)
なお、Pythonの基礎文法が前半に解説されています。浅いコピー、参照といった本質的でありながら初心者が何となくわかったような気になって流してしまいがちな点についても丁寧人触れられています。
さらに私がこの本をオススメするわかりやすさ、使いやすさ以外の理由は、Pythonの流儀を感じられる本だからです。Pythonはパイソニスタと呼ばれるPythonを愛する人達がいて、プログラミングとはこうあるべき、という流儀、考え方があります。変数名の付け方や解説のための何でもいい変数名*1、基本文法に宿る考え方などについて初心者の内から触れられることは貴重だという思いも、この本が良いと思った理由です。
一方で、この本はアマゾンの書評などで、解説が不十分という感想をよく見かけます。しかし、私はこの本で良いと思っています。なぜならこの本に書いてあるサンプルコードを実務で応用するにはネットや他の書籍などで色々調べる必要があります。その過程で、Pythonで業務を自動化する開発ができる実力が身につくからです。ここがわかっていないと、この本では不十分だという感想を抱いたり、挫折したりすることにつながってしまいます。
業務改善にオススメのプログラミング入門言語まとめ
業務改善に役立つ一言語目のオススメについてまとめます。
- エクセルなどOfficeをよく使うならVBA
- GメールなどGoogle Appsをよく使うならGAS
- いろいろなアプリの操作やネットからの情報取得をするなら汎用言語のPython
- Pythonは基礎文法の習得だけでなく、モジュールの理解が必要
というわけで、PythonはVBAとGASに比べて、実務で自動化につなげるためのステップが一つ多いことが要注意でした。一番大切な事は、何をしたいのかを明確にすることです。「汎用言語って便利そう」「人工知能やデータサイエンスってかっこいい」という判断基準ではなく、何をしたいのかを明確にして、それに向いているプログラム言語を選択しましょう。
ぜひ、この記事の中から勉強するプログラミング言語を見つけて、始めの一歩を踏み出しましょう!
<関連記事>
*1:メタ変数といいます。「必要に応じて適切な変数名に変えてね」という何でもいい変数名の時にPythonではイギリスのコメディ「モンティ・パイソン」にちなんだ単語をつける文化があります