RPAと VBAと Pythonなら、自動化にはどれが一番いいの?(vol.23)

2022.05.30

近頃、DX(デジタルトランスフォーメーション)や仕事の効率化などを目的に、会社の業務や、身の回りの作業を自動化することへの関心が高まっています。
昔からも、仕事を自動化する手段と言えば、Excel マクロ(VBA)が広く活用されてきました。
ところが、最近はRPAPythonなど新しい自動化の手段が世の中に広まってきています。
読者の皆さんも「これから業務を自動化したいけど、どれがいいの?」、「いままでVBAを使ってきたけど、RPAに乗り換えようかな?」、「プログラミング経験が無いけど、Pythonの自動化って簡単?」など色々迷われている方も多いのではないでしょうか。
そこで本記事では、皆さまに合った自動化の手段を見つけていただくために、RPAVBAPythonによる自動化の比較と、実際にそれぞれの手段で開発した様子をご紹介いたします。

RPAとVBAPythonの比較表

ここではプログラミング未経験の方が、はじめて業務の自動化を取り組むことを想定して比較してみたいと思います。

RPA、VBAPythonそれぞれで、学習の難易度、開発準備、必要な費用のしやすさという3つの観点で比較してみました。

 

RPA

VBA

Python

評価コメント

学習

PythonとVBAはプログラミング言語のため、アルファベットや数字を用いてプログラムを書く必要があります。一方でUiPathはプログラミングの要素はあるものの、画面上の部品を組み立てながら自動化を行うため、比較的にプログラミング未経験の方でも理解しやすい環境と言えます。

準備

 

UiPathやVBAは利用するためにインストーラーが整っていますので直ぐに利用が可能です。一方で、Pythonは動作プログラムや、エディタや、ライブラリなど個別にインストールして環境を揃える必要があるため、比較的にプログラミング未経験の方には準備が難しい面があります。

費用

 

Pythonは無償で公開されているプログラミング環境です。一方でRPAVBAはライセンス費用が必要です。ただしUiPathは学習用途であれば無償のCommunity Editionが使用できます。

※比較評価の結果は、弊社の社員が経験則から独自に評価した内容になります。予めご理解のほどお願いいたします。

RPAとVBAPythonをもっと比較するために実際に開発してみた

「比較表だけでは、どれが良いか判断できない!」というそんな方へ、RPAVBAPythonで、実際に業務自動化を開発した内容を簡単にご紹介させていただきます。

実際に、よくある業務自動化の例として 「経費申請(Excel)を1つのExcelファイルにまとめる」という作業をRPAVBAPythonでそれぞれに自動化してみます。

下記のとおり大田さんと田中さんの2つの経費申請書を、全員分のExcelファイルへ転記して1つにまとめます。

それぞれの経費申請書には経費データが複数件、入力されています。

業務自動化の開発を行うと、大田さんと田中さんのデータが、全員分のExcelファイルの「Sheet1」にすべて自動的に転記されます。

# VBAの場合

では、まずはVBAによって業務自動化をしてみます。最初にまとめ先である「全員分」のExcelファイルを開いて、メニューから「開発」、「Visual Basic」という手順で選択します。

Visual Basicを起動すると、VBAでプログラミングをするためのエディタが開きます。このエディタ上にプログラムを書いていきます。

プログラミングした内容はこちらです。

VBAでは簡単に解説しますと、次のような内容を書いています。

① 「MergeSamples」という関数を作成

② 大田さんと田中さんのExcelファイルを開く

③ シートのA1からF100までの値を取得

④ 全員分の「Sheet1」にデータが入力されている最終行を取得して「3」で取得したデータを貼付け

VBAはExcelがインストールされているとすぐにプログラミングをすることができるので業務自動化の準備は簡単です。一方で、上記のプログラミングを読めて自分自身で書けるようにならないと業務自動化が出来ないため、学ぶことの難易度は少し高くなりそうです。

# Pythonの場合

続いて、Pythonによる自動化を行ってみます。Pythonはまずは公式サイトからPythonの開発環境をダウンロードしてインストールする必要があります。

インストーラーをダウンロードすると画面上の案内に従ってPythonをインストールすることが可能です。

ここまでで、Pythonの実行環境はインストール出来たのですが、続いてPythonのプログラミングをするためにはエディタなど開発環境が別途必要です。
Python
には様々なエディタや開発環境が公開されていますが、今回の例では「JupyterLab」という開発環境を利用しました。

引用:https://github.com/jupyterlab/jupyterlab-desktop/blob/master/media/jupyterlab-desktop.png

JupyterLabは「https://github.com/jupyterlab/jupyterlab-desktop」からダウンロードすることができます。

プログラミングした内容はこちらです。

Pythonでは簡単に解説しますと、次のような内容を書いています。

① globやpandasといったPythonのプログラミングを便利にするライブラリをインポートする

② Dドライブの所定フォルダ内に格納されたExcelファイルをsamplesという配列へ代入する

③ samplesというExcelがファイル格納された配列からデータを取り出し、pdというpandasにデータの追加を繰り返す

④ pdのデータをすべて結合させて、全員分のExcelファイルへ出力する

 

PythonはExcelと比較すると、準備でPythonやエディタなどインストールする作業が増えてしまいます。また、VBAと同様に上記の様なプログラミングを読めて自分自身で書けるようにならないと業務自動化が出来ないため、学ぶことの難易度は高くなりそうです。

# RPAUiPath StudioX)の場合

最後にRPA製品のうち、UiPath StudioXを使って業務自動化してみます。まずは無償のUiPath StudioX Community Editionをダウンロードしましょう。

ダウンロードするためにはまず、UiPath Automation Cloud アカウントを作成します。その後、UiPath Automation CloudWebサイトにログインしてインストーラーをダウンロードしてください。

ダウンロードが出来たら、UiPath StudioXを起動しましょう。UiPath StudioXを起動すると、こちらのようなエディタが表示されます。

VBAやPythonと大きくやり方が異なる点は、アルファベットや数字記号によるプログラミングではなく、アクティビティという部品を選択しながらプログラムを組んでいきます。

実際にプログラミングした内容はこちらのとおりです。

RPAは、アルファベットや数字記号などをプログラミングする方法ではないため、VBAやPythonと比較すると、プログラミング未経験の方でも、どのように処理しているか視覚的に理解しやすいのではないでしょうか。

自分の業務を自動化するにはどれが一番いいの?

VBAとPythoRPAUiPath StudioX)で実際に開発した様子を簡単にご紹介させていただきました。

冒頭の比較表でご説明したとおり、「学習の難易度」、「開発準備のしやすさ」という面で、それぞれ特徴を感じて頂けたのではないでしょうか。さて、では結局のところ自分の業務を自動化するにはどれが一番良さそうでしょうか?それぞれの開発環境ごとにオススメの点など整理してみました。

開発環境

学習

準備

費用

評価コメント

RPA

とにかく早く業務を自動化したい方、自動化する業務の対象がMicrosoft Office製品(ExcelOutlookなど)や、業務システムなど多岐に渡る方にオススメです。

例えばUiPath StudioXは、ノンプログラマ(市民開発者)の方を対象にした自動化ソフトウェアです。個人の日常業務をシンプルに自動化できるようになります。VBAPythonと比較すると費用がかかってしまう反面、誰でも簡単に、かつ充実したサポートを受けながら自動化を実現できることがRPAの魅力です。

 

VBA

 

プログラミングを学びならが業務の自動化を進めていくことをお考えで、かつ自動化する業務の対象がMicrosoft ExcelMicrosoft Officeに限定的な方にオススメです。VBAの学習はプログラミング未経験の方には当初、難しく感じられると思います。しかしながら、VBAを習得すると、スピーディにExcelを自動化することができます。Excelの「マクロを記録」機能では実現できない内容も自動化できるようになります。

お仕事の環境ではExcelがインストールされていることが多いため、簡単な手順で、直ぐに学習を開始できることがVBAの魅力です。

 

Python

 

時間をかけて本格的にプログラミングを学びながら、業務を自動化したいとお考えの方にオススメです。Pythonは高度なプログラミング言語のために、プログラミング未経験の方にとっては学習や準備が難しいと思います。しかしながら、Pythonを習得すると、身の回りの様々な業務をスピーディに自動化することができるようになります。また、無償の環境のため、ライセンスなどの費用が一切かからないことがPythonの魅力です。

 

まとめ

本記事では、皆さまに合った自動化の手段を見つけていただくために、RPAVBAPythonによる自動化の比較と、実際にそれぞれの手段で開発した様子をご紹介させていただきました。

近頃は、プログラミングを学ぶ環境やRPA製品が大きく発展したことによって、誰でも身の回りの仕事や業務を自動化できる環境が整ってきました。読者の皆様もぜひ、この機会に業務の自動化に取り組んでみてはいかがでしょうか!

 

弊社ではRPAの推進と活用をもう一度はじめたい方に参考になる資料「今こそ言える、RPA成功への近道 ~推進と活用の2軸からもう一度はじめましょう!~」をご用意しております。本資料は、RPA導入や再活用に向けて必見の資料です。ぜひダウンロードいただき、ご覧ください。」