Photo by Avi Richards on Unsplash
はじめに
こんにちは。この記事では、PCでの作業の自動化を考える方に向けて、各種スクリプト言語と、その用途の実例等を紹介します。これから導入を検討する方にも、一体どういったことができるのかも含めて、参考になる部分があると思いますので、学習していきましょう。
レッスン1.導入するメリット
まずは、自動スクリプト導入のメリットを紹介していきます。身近の自動化として思い浮かぶのが、エクセルVBAのマクロです。入力作業や計算処理を自動化することで、大量のデータ処理を可能にします。このように、人間がやると時間がかかりすぎるといった作業をこなしたい場合にスクリプトが向いています。また、あるアプリケーションを開いたら、必ず同時に開きたいアプリケーションがあるといったケースのように、ルーティーンが決まっている場合にも活躍します。
自動化のスクリプト作成には、それなりの時間がかかるケースもありますが、一度作ってしまえば時間の節約になり、それが積もり積もって大きな改善効果をもたらします。発展すると、タイマーで起動して我々が寝ている間に自動で作業しておいてくれるといったことも可能になります。
また、スクリプトの良さはそれだけに留まらず、誰が作業しても同じ結果が得られることも挙げられます。担当者が休みで作業できないということが減りますので、チームとしてもメリットが大きいはずです。
Photo by Fatos Bytyqi on Unsplash
レッスン2.使用例
では、続いていくつか具体的な使用例を見ていきましょう。ここで紹介するものはほんの一例ですが、これから自動化を考えようと思う方に、どんな使い方をすれば良いのかイメージを掴んでいただきたいと思います。
例1 ファイル、フォルダの操作
ファイルやフォルダの作成、複製、リネーム、削除等の操作はマウス操作で簡単にできますが、数が多くなると時間がかかります。例えば、「ビルドしたら、その成果物を自動でサーバに日付のフォルダを作ってコピーする」といった操作を手動でやったらどうでしょう?1度だけでしたら手動でやってしまった方が早いですが、もしそれが毎日となれば、積もり積もってかなりの時間を取られることになります。またちょっとしたミスも入り込むかもしれません。このように決まった操作にはスクリプトによる自動化が向いています。
例2 巨大なテキストの取り扱い
ログファイルなど、巨大なテキストファイルから、あるデータだけを抜き取りたいというようなケースもスクリプトを使えば高速に処理ができます。
簡単なルールであれば正規表現で対応可能なケースもありますが、複雑になってくるとスクリプトが活躍します。また、欲しいデータだけを抜き出したテキストファイルを新たに作成することも可能なので、その後の作業も連携させた自動化が可能となります。
例3 アプリケーションの起動
アプリケーションを起動するときに、毎回特定のファイルを開きたい、起動オプションを設定したいなど、アプリケーションの起動を一連のマクロ化したい場合にも役立ちます。どのようなことができるのかはアプリケーションによってまちまちですが、コマンドライン実行ができるアプリケーションはヘルプ等に起動オプションなどが書かれていますので、それに沿ってスクリプトを作ることで、ワンクリックで毎回同じ環境で起動といったことが可能です。クリックだけで起動できるので、コマンドラインに疎い方にWindows上で決まった操作をさせたいといったケースでも活躍します。
例4 マウス、キーボードの自動操作
あるソフトを自動操作してテストを回したい、ビルドをしたい等のケースで、コマンドライン実行が対応していないソフトがある場合や、WebページのUIをテストしたい場合など、マウスでクリック、あるいはキーボードで入力という操作を、あたかも人間が行ったようにマクロで実行できる方法があります。
しかしながら、マウスクリックは座標指定がある関係で、PCの解像度により結果に違いが出てきてしまう恐れがあり、機種依存のスクリプトになりがちですので注意が必要です。
Photo by Marvin Meyer on Unsplash
レッスン3. 各種スクリプト言語の比較
スクリプト言語といっても、世の中には数多くの言語が存在します。その中でもメジャーなものをいくつか挙げ、それらの利点と欠点を比較してみます。各言語がカバーできる範囲が被っているものもありますが、それぞれに向いている用途がありますので、それを「推奨の用途」として挙げています。向いている用途で使うことで、コード量が少なくできたり、実行が高速だったりするメリットがあります。
各スクリプトの言語の特徴を掴んで、これから取り組む課題に対して最適な言語を選ぶようにしましょう。
スクリプト言語 | 推奨の用途 | 利点 | 欠点 |
---|---|---|---|
bat(バッチファイル) | アプリケーションの起動 | コード量が少ない 実行環境のインストールが不要(Windows) |
複雑な処理には向かない |
Visual Basic Script(VBS) | ファイル操作 | 実行環境のインストールが不要(Windows) Excel VBAとほぼ言語仕様が同じなので技術情報が豊富 |
言語仕様が古く、最近の機能には対応していない場合がある |
Perl | テキスト加工 | 文法がシンプル テキスト処理が高速 |
実行環境のインストールが必要 |
Python | ファイル操作 GUI操作(マウス、キーボード) |
文法がシンプル APIが非常に豊富で用途が幅広い 人気の言語なので、技術情報が豊富 |
実行環境のインストールが 実行速度が遅い |
レッスン4.自動化を考える時の注意点
自動化スクリプトを作るに当たり、注意すべき点があります。作る前にこれらの注意点を考えてから設計するようにしてください。
使用者のことを考える
自動化スクリプトを作り、他のメンバーにも使ってもらいたいと考えた時、課題になってくるのが実行環境のインストール作業です。前述したPythonやPerlを選んだ場合、使うメンバーは皆横並びで実行環境のインストール作業が必要となりますので、多少なりともメンバーの時間を費やすことになります。
また、実行するのに準備が複雑なスクリプトも気にするようにしてください。「このディレクトリに置いて、設定ファイルにパスの設定を入れ、実行する際には・・・」というように実行までの道のりが険しいと「スクリプトが動かない」といったトラブルを抱えるメンバーのサポートの時間が必要になります。どうしても複雑にならざるを得ない場合は、ドキュメントを準備するなりして適切にガイドできるようにしましょう。
まとめると、自動化スクリプトを設計するときには、使用する人のことを考えて
- 実行するために必要な設定、ファイルは最小限か
- 皆使える実行環境であるか
- 本当に実行環境のインストールをしてまで、その言語を使わなければならないケースなのだろうか
これらを意識するようにしましょう。
メンテナンス性を考える
これはスクリプト言語に限ったことではないですが、プログラミングをするときはメンテナンス性も考えた設計が必要です。スクリプト言語は短時間でサクッと作ることが多いため、コメントや可読性を意識したコーディングがなされないことが多いのが現状で、それによって後々のメンテナンスが難しくなってしまいます。
これはほかのメンバーに対してではなく、自分にとっても大事になってきます。スクリプトは安定稼働するとずっと使われ続けます。ただ、ある日仕様変更が必要となった場合、いくら自分で作ったコードとはいえ数年前となると忘れてしまっているものです。解析が難しい場合、最悪作り直しになることにもなりかねません。以上から、やはりスクリプト言語においてもメンテナンス性を考えた設計を意識しましょう。
おわりに
今回は自動化スクリプトを学んできました。適切に使えば単純作業に費やす時間が減り、より生産的な作業に時間をかけることができます。まずは日々の作業を見直してみて、自動化できるポイントは無いか探してみてください。
小さな改善でも積み重ねていけば、効率はどんどんアップしていくと思いますので、有効に活用していきましょう。
No Comments