最近では業務自動化を行うためのRPAツールに注目が集まっています。RPAツールと言えば「UiPath」などのソフトウェアが有名ですが、マクロやスクリプトなど自動化の目的ごとに適した実現方法が他にも色々とあることも事実です。今回はRPAツールも含めた業務自動化全般の方法を解説しつつ、おすすめプログラミング言語を紹介します。
1. 【RPA・業務自動化・自動操作向け】おすすめプログラミング言語4選
業務自動化の実現方法については、それぞれの用途によって適している方法が異なります。本記事では、RPAの用途や、実装する際のおすすめプログラミング言語を紹介致します。
1.1 RPAの主な用途
RPAの主な用途は単純作業の自動化です。たとえばExcelファイルに記載されたデータを社内向けの顧客管理アプリに転記する作業などはRPAの得意な作業です。
ブラウザ操作を行うRPAツールとして人気なのは、Microsoftが提供する「Power Automate Desktop」です。ブラウザ上の要素について深く考えなくともGUIベースで自動化が行え、Windows 10ユーザーであれば基本的に追加費用なしで利用できる点が特徴です。
条件によって有償になることもあるものの、アプリケーションを跨いだ自動化も可能であることは大きなメリットです。
RPAツールについて詳しくは、次の記事をご覧下さい。
1.1.1 RPAとスクレイピングの違い
RPAの代表的な用途には「ページ情報の抽出」が挙げられます。たとえば特定のサイトから指定した情報をまとめて抽出したり、所定条件に沿って画像を収集するといったものです。
こうした用途に用いられる、RPA以外の代表的な技術には「スクレイピング」が挙げられます。
RPAとスクレイピングの大きな違いは次のような「抽出方法の違い」にあります。
• RPA:クリック&ペーストなど実際の画面操作を記憶して、ページ情報を抽出
• スクレイピング:ページのHTML構造を解析して、ページ情報を抽出(※Headless Chromeを使用して実際の画面操作を実装し、ページ情報を抽出するケースもある)
RPAは、対象ページ上で人間が行う操作を記憶して、その操作を自動的に再現するという仕組みになっています。
ゆえにスクレイピングのようにページのHTML構造を理解する必要がないため、プログラミング知識のない初心者でもRPAロボットを作成することが可能です。
なおRPAはスクレイピングと異なり、情報の集計などにも対応します。スクレイピングよりも、そもそも「用途が広い」ことも大きな違いといえるでしょう。
1.1.2 【参考】ブラウザのGUI操作を自動化する主な手法
上記でRPAとスクレイピングの違いに触れましたが、両者ともに代表的な用途としては「GUI操作の自動化」が挙げられます。
RPAではツール経由でブラウザ操作を自動化。
スクレイピングでもHeadless Chromeを使用して、画面操作の自動化で画像収集等を行うケースがあります。
つまり「ブラウザのGUI操作の自動化だけ」がRPAの導入目的であれば、RPAツールの使用にこだわる必要は特にないということです。また簡単な処理はRPAツールで実装し、複雑な処理は直接コードを書き、両者を連携させるということもできます。
自動化の主な方法には主に4つあります。表にまとめて解説します。
手法 | 概要 |
---|---|
「InternetExplorer」の「COM」を利用する | WindowsのIEは外部のソフトウェアを別途インストールすることなく自動操作可能。2022年6月15日にサポートが終了するので、注意が必要 |
Selenium | 外部のライブラリが必要になるものの、多くのブラウザやプログラミングがサポートされており、Pythonなどでも利用可能。汎用性が高い |
ブラウザ拡張の作成 | ブラウザ拡張機能を通じた自動操作。ChromeとFirefoxの場合、JavaScriptで作成できるため開発難易度は低め |
RPAツールを使用する | GUIベースで自動化を行うことができ、Seleniumやブラウザ拡張の自作より技術面の敷居は低い。ただし有償のケースも多い |
ちなみにSeleniumは本来、WebアプリケーションのテストやQA(品質管理)業務に利用されるケースが多いです。
プロエンジニアでもSelenium関連のフリーランス案件を多く取り扱っており、テストの自動実行などができる方は市場価値も高いです。
▶ Selenium関連のフリーランス案件|プロエンジニア
後半ではSeleniumの利用やブラウザ拡張の作成なども念頭に置いて、おすすめのプログラミング言語を紹介します。
1.2 おすすめプログラミング言語の選定基準
次の項目から、実際におすすめのプログラミング言語をご紹介します。今回紹介するプログラミング言語の選定基準は、次の通りです。
■ 対応しているライブラリの多さ
おすすめ選定基準の一つ目は、まず対応しているライブラリの多さです。例えばPythonの場合、「Selenium」という外部ライブラリを使えば、簡単にブラウザの操作を行うことができます。また「OpenPyXL」という外部ライブラリを使うことで、Excelファイルの中身を直接読み書きすることが可能です。このようなライブラリの種類が多いということは、様々なニーズへ細やかな対応を行えるということにつながります。
■ RPAツールから該当のプログラミング言語の呼び出しが可能か
例えばUiPathという人気のRPAツールには、外部のコードを呼び出す機能があります。UiPathはこのコードを呼び出す機能でPythonやC#のコードを呼び出すことが可能であり、二者を連携させることで、自動化の対応の幅が広がります。またUiPathは、Excelのマクロとの連携も可能となっています。
■ ExcelやGoogleスプレッドシートなど他アプリとの連携しやすさ
RPAツールとの連携だけでなく、他のアプリケーションとの連携のしやすさも重要です。例えばPythonであれば「OpenPyXL」、C#であれば「Closed XML」を使うことで、Excelファイルの操作が可能です。さらにPythonはGoogleスプレッドシートへも直接アクセスして操作することが可能となっています。
2. Python
Pythonで自動化できる作業には、例えばExcelファイルから条件に合うデータのみを抽出して、テキストファイルに書き出すことなどがあります。
手動でフィルタをかけて簡単にできる作業のようにも思えますが、何度も同じ条件で同じ作業を繰り返すという場合であれば、かなりの業務効率化が見込めるのです。
▸ 詳細 :【テストエンジニア】AIを活用した経理業務SaaSのテスト案件|プロエンジニア
▸ 詳細 :【Go/Python】リードエンジニア★運用自動化プラットフォームの開発|プロエンジニア
2.1 主なライブラリ
Pythonで自動化に役立つライブラリには、次のようなものがあります
• Selenium: |
---|
ブラウザを操作する |
• OpenPyXL: |
エクセルファイル(*.xlsx)を操作する |
• python-pptx: |
パワーポイントファイル(*.pptx)を操作する |
• PyPDF2: |
PDFファイル(*.pdf)を操作する |
2.2 対応している主なRPAツール
Pythonのコードを呼び出せるRPAツールには、「UiPath」や「Blueprism」などがあります。UiPathは単体でも様々な自動化に対応していますが、Pythonと連携するメリットとして挙げられるのは「得意とする領域が違う」ことです。
例えばUI操作の自動化であればUiPathのほうが簡単に実現できますし、複雑な計算をしたい場合はPythonでスクリプトを書いてしまったほうが扱いやすいケースがあります。また、作りたい処理に関連するツールを探す際、UiPathパッケージにはないがPythonライブラリにはある(またはその逆)という場合もあるでしょう。
そのような両者を連携することで、今まで一方だけでは実現が難しいと思っていた業務の自動化を実現できることがあります。
2.3 おすすめ学習サイト・書籍
Pythonを使った自動化を学ぶために、おすすめの書籍を紹介します。
Pythonのインストールと実行の方法から始まり、ExcelなどOffice製品の操作、ブラウザ操作、メールの送信、正規表現やユーザー入力の扱い方など、Pythonで人気の自動化処理をひととおり押さえた決定版です。
3. Google Apps Script
「Google Apps Script」とは、Googleが提供しているプログラミング言語であり、JavaScriptをベースに作成されています。
Googleアカウントがあればだれでも無料で利用でき、Googleスプレッドシートやその他のGoogleが提供するサービスと連携することが可能です。Googleスプレッドシート版のExcel VBAというイメージです。特に作ったプログラムは自動で実行も可能であるため、「毎週月曜の夜にこの作業を実行したい」などの要求にも答えることが可能です。
ちなみにGoogle Apps Scriptは企業のDX(デジタルトランスフォーメーション)でも活用されており、プロエンジニアでもDXに関連したGoogle Apps Scriptの案件を取り扱っています。
▸ 詳細 :【Google Apps Script】部内利用システムの運用効率化におけるDX設計・実務|プロエンジニア
▸ 詳細 :【GAS】DXエンジニア★部内利用システムの運用効率化におけるDX設計・実務|プロエンジニア
3.1 主なライブラリ
GAS(Google Apps Script)で行う自動化に役立つライブラリには、次のようなものがあります。
• ChatWorkClient for GAS: |
---|
チャットワークのAPIを利用可能にするライブラリ |
• SlackApp for Google Apps Script: |
SlackのAPIを利用可能にするライブラリ |
なおGASでは、自分でライブラリを作成することができます。
よく使う関数や決まった処理を行うルーチン部分については、なるべくライブラリにまとめてしまいましょう。そして足りない部分だけをその都度のコードで記述するという開発手法が、GASでは主流となっています。
その結果、開発の速度をどんどん早めることが可能です。
3.2 対応している主なRPAツール
「Gsuiteアクティビティ」は、2019年にUiPathからリリースされた追加パッケージです。
Googleスプレッドシート、Gmail、Googleドライブなどの主要なアプリを簡単に自動化可能です。
なおそのアクティビティの内部では「G Suite APIs」を呼び出しており、ブラウザ上で直接操作する方法と比べ、安定性が高いのも特徴です。
3.3 おすすめ学習サイト・書籍
Google Apps Scriptで自動化を学ぶために、おすすめの書籍を紹介します。
■ 詳解! Google Apps Script完全入門[第2版]
著者:高橋宣成
出版社:秀和システム
発売日:2020/12/1
参考価格:2,860円
ページ数:584ページ
出典:Amazon
GASだけでなく、JavaScriptの初心者であっても大丈夫な基礎からスタートします。さらには実践的な構文やオブジェクトの仕組みなどまで、これ一冊だけで応用まで体型的に習得することが可能です。
4. C#
C#で利用可能なWindows APIを使うと、マウスやキーボードなどの入力ツールの操作などをプログラム上から行えるようになります。
なおWindows APIはWindowsが標準搭載しているAPIで、これを利用することでプログラムからWindowsの様々な機能を利用することが可能となります。
4.1 主なライブラリ
C#で行う自動化に役立つライブラリには、次のようなものがあります
• Friendly: |
---|
GUI操作を行うためのライブラリ(単体テストの自動化などに利用されることが多い) |
• ClosedXML: |
Open XML形式のExcelファイルを読み書きするためのライブラリ |
4.2 対応している主なRPAツール
C#の呼び出しが可能な主なRPAツールにも、「UiPath」が挙げられます。こちらもC#で作成された既存のコード資産があるなら、UiPathと連携させることがおすすめです。
なお「コードの呼び出し」画面で設定する言語には、「C#」ではなく「CSharp」と指定するので注意して下さい。
4.3 おすすめ学習サイト・書籍
C#で自動化を学ぶために、おすすめの書籍を紹介します。
■ Visual Studio 2019 C#でExcelファイル自動処理プログラミング入門
著者:佐々木優
販売:Amazon Services International, Inc.
発売日:2021/2/7
参考価格:698円(Kindle版)
ページ数:128ページ
出典:Amazon
ClosedXMLを用いたExcelファイルの自動処理を中心に書かれた参考書です。サンプルコードではウェブサイトからCSVファイルをダウンロードして、Excelファイルを作成する流れなどが紹介されています。
5. PowerShell
PowerShellとは、Windowsのフォルダ・ファイルの操作をはじめとし、たくさんのコマンドレット(PowerShell用のコマンド)が用意されているCUI(キャラクターユーザーインターフェース)です。
同じCUIで有名なコマンドプロンプトより、充実したコマンドが用意されています。
例えば、PowerShellを使うと次のようなことが可能です。
- フォルダやファイルの操作(作成、変更、削除など)
- アプリケーションの起動
- スケジュールを指定して実行
- テキストの操作(HTML、JSON、CSVファイル等に出力する等)
- ブラウザと連携(Webページからデータをダウンロードする等)
- Office365と連携(メールアドレス一覧を取得する等)
さらにPowerShellの利点として、制御構文(if文、while文、for文)などが使えることや、Windows7以降であれば標準で搭載されているので、開発環境の構築など不要ですぐに始められることが挙げられます。
5.1 主なライブラリ
PowerShellで自動化に役立つコマンドレットには、次のようなものがあります
• New-Item: |
---|
新規でファイルやフォルダを作成する |
• Remove-Item: |
ファイルやフォルダを削除する |
• Set-Location: |
カレントディレクトリ(作業フォルダ)を移動する |
• Get-Date: |
日時を取得する |
なおPowerShellは.NET Frameworkを基盤として開発されています。そのため.NET向けのライブラリ資産の多くを流用できるため、単なる高機能なコマンドプロンプトにとどまらず、変数や配列、演算子、制御構文などが使用でき、自由度の高い処理が可能となっています。
5.2 対応している主なRPAツール
PowerShellについても、呼び出し可能なRPAツールに「UiPath」が挙げられます。こちらも既存の資産があるなら、UiPathと共に使えるのでおすすめです。
こちらはコードの呼び出しではなく、「StartProcessアクティビティ」または「InvokePowerShellアクティビティ」から開始することができます。
5.3 おすすめ学習サイト・書籍
PowerShellで自動化を学ぶために、おすすめの書籍を紹介します。
■ 動くサンプルで学べるWindows PowerShellコマンド&スクリプティングガイドPowerShell 4.0対応
著者:五十嵐 貴之
出版社:ソシム
発売日:2015/3/13
参考価格:3,278円
ページ数:384ページ
出典:Amazon
利用の始め方から変数や制御構文などの文法、コマンドレット、データ型、ファイル操作などを、93本ものサンプルスクリプトを使って説明しています。用意されているサンプルはどれも実践的で、すぐに使えるものが満載となっています。
6. 【その他】おすすめの自動化向け拡張機能・ツール
特別なプログラミング言語やスクリプトを使用しなくとも自動化を行う方法もありますので、紹介致します。
6.1 Chrome拡張機能
ブラウザにChromeを利用している場合は、Chromeの拡張機能を利用するという自動化の手段もあります。
■ ScriptAutoRunner
ScriptAutoRunnerを使うことで、任意のサイトでJavaScriptを実行可能になります。基本的にブラウザを立ち上げた状態で実行していることから、セッションの状態などを気にする必要がないというメリットがあります。そのため、Webサイトにログインした状態のまま機能を使うことができることから、高度なログインが必要なサイト上でもデータの取得などが実行可能となっています。
■ Easy Auto Refresh
Easy Auto RefreshをScriptAutoRunnerと組み合わせることで、ScriptAutoRunnerを自動で実行することができます。そこから→EasyAutoRefreshで再度読み込み→再度実行といった繰り返しが可能であるため、Webアプリ開発時の自動テスト構築などに最適です。
6.2 RPAツール
そのほか既存のコード資産のない状況や、大幅な見直しが必要だという場合には、RPAツールで全ての自動化を行ってしまうという方法もあります。
RPAツールには無料で使えるものも多くありますので、興味のある方は次の記事も合わせてご覧下さい。
7. まとめ
このように業務の自動化や画面の自動操作は、RPAツールでなければ不可能というものではありません。さらにスクリプト言語やブラウザの拡張機能と連携させることによって、すでにあるコード資産を流用することも可能です。本記事が最適な手段を選択する一助となれば幸いです。