見出し画像

Excelに、社内システムのデータを自動取得する方法4選+1


社内システムデータを、Excelでお手軽活用

社内システムとは、イントラネットとも呼ばれ、日常の業務連絡・報告などに使う他、大抵の場合、前月の売り上げ実績など、報告で吸い上げたデータを集計した結果の「業務処理データ」がダウンロードできる機能などがあります。


社内システムのデータを、直接Excelへ

当社がかかわった多くの事例において、何らかの業務を行うにあたって社内システムとデータの授受をしているケースがかなり多くありました。

Excelで、データを取り出す方法4選

社内システムのデータを手入力するのではなく、Excel側に自動取得できれば、高速かつ正確性も飛躍的に向上します。

大抵の社内システムはデータベースを活用しているので、技術的にはExcelから直接データを操作(読み取り/書き込み)することは可能です。

とはいえ、管理上「何らかの制約」があることが多く、他の方法も併せてデータの自動授受(取得・登録)方法を探ることになります。

1.データベースの読み取り権限だけ貰う

データベースに接続する場合、他のシステム同様「アクセス権限」が必要になります。どんな処理系でも「全権限」「読み書きできる権限」「読み取り専用権限」があります。情報システム部門としては、「書き込み権限」を他者に委ねることで、データの「完全性」「機密性」が担保されなくなる懸念から非常に抵抗があり、このため「DBへの直接接続はNG」という見解になりがちです。しかし、現場のニーズとしては「読み取りのみ権限」があれば十分なケースが多いのです。

ExcelはDBから読み取るのみ

例えば、Excelのシート上に前月の売上を商品グループ単位で表示させたいといったニーズがあったとして、DBに書き込みに行く必要は全くなく、当該部署に関係のあるデータ範囲に限って読み取り(閲覧)、その後Excelの機能(PowerPivotなど)で集計できればよいのです。

こうした説得のような交渉がうまくいけば、Excelの「外部データの取り込み」機能を活用したり、SQL(データベース操作言語)を使ってデータを加工することができるようになります。

コスト的にも、処理速度的にも、一番有利な方法で、機能的な拡張性にも優れた方法です。

2.システム側が用意したAPIを使う

大抵のシステムでは、各種データを直接授受ができる口(I/Fと書いて、インターフェースと呼びます)を設けており、APIと呼ばれています。身近な例としては、Amazonにおいて、自分で作ったプログラムなどから書籍のISBN情報を基に、書名や価格などを取り出すことができるAPIが提供されています。

社内システムのAPIの一部を開放してもらえれば、プログラムからAPIを通して「こんな条件で、データを下さい」的な手続きをすることで、直接Excelのシート上にデータベースの内容を取得できます。

APIなら、Excelから読み取りも更新もできる

この場合、APIは開発側の意思で作られたものなので、どのような手順で授受すればよいかは、社内システムの開発側にしか分かりません。開発側(多くは情報システム部門が絡んでいます)がAPIの仕様を公開してくれれば、ExcelのVBA(マクロ)から呼び出してデータ取得が可能となります。

開発期間が長くなりがちのため、コスト的には少々負担が増えますが、データベースの構造や場所などを公開する必要がないことから、情報セキュリティ(機密性)を維持しつつ利便性を高める方法として、近年採用が増えています。

3.利用者向けの画面から、CSVをダウンロードする

多くの場合、社内システムからは、登録されたデータをcsv形式のファイルとしてダウンロードする機能があります。なくても、データベースからデータをダウンロードするだけの機能であれば、慣れれば比較的容易にスクリプト化できます。

どのデータをダウンロードできるようにするかは、制作側の人にしかわかりませんが、メニューを見れば当たりがつくはずです。

このcsvデータをExcelのシートに読み込むことで、少なくとも手入力よりも遙かに短時間で、間違いの無いデータを確保できるようになります。

4.Excelからブラウザを自動制御

多くの社内システムは、ブラウザを使って利用します。

Excelもマクロを使えばブラウザを直接操作することができるので、人が操作しているのと同じ操作を、ExcelのVBAから実行すれば、「メニューからxxxを選択し、年月と△△△を選択して☆☆☆のボタンを押せば、データファイルがダウンロードされる」といった操作を、Excel側から操作できます。

社内システムのhtml構造の複雑さによっては分析に時間がかかるのと、ブラウザのバージョンが上がると設定ファイルを入れ替える必要があるなど、コスト・運用ともに敷居が高いのですが、情報システム部門からあらゆる接続をお断りされても、この方法なら断る理由がなく、拒絶されることは無いでしょう。
RPAでも同様のことができますが、可変要素をシート上に設定しておける手軽さがあるのに加えて、WindowsのUpdate時に急に動かなくなる、といった心配を減らせます。
実際に動いているイメージは、こちらをご覧下さい。

5.全て断られた場合 (情シスにお願い)

ちょうど先日、某社の情報システム部門から「利用者側のコンピュータでは、あらゆるプログラムを動かしてはいけない」として、VBA(マクロ)で動くプログラムの受入れをお断りされた事がありました。理由を聞いたら「セキュリティ上の理由のため、回答できません」とのこと。元々手作業で当該作業を行っていることから、情報漏洩リスクが増加する懸念はなく、寧ろ人的ミスが起こりえる状態が放置されているわけですから、情報セキュリティの3要素の1つ「完全性」が損なわれており、皮肉なことに「セキュリティを維持させないことが目的」になっています。

こんな時には、情報システム部門に「データをダウンロードするしくみを作って下さい」とお願いするのも手です。

情シス部門にお願いする

「忙しい」と断られることも予想されますが、元々データベース管理機能にある機能を活用するだけなので、実はそれほど難しい内容ではありません。主要データのみダウンロードする機能に絞った上で、年度予算編成で取り上げて貰えるタイミングで交渉すれば、「利用者に勝手にいじられては困る」という「お断りの理由」がなくなる分、成功確率が高くなります(あくまで過去の経験ですが)。

なお、先の「プログラムお断り」の企業では、説得が効いたのか別の押しが効いたのかわかりませんが、その後受け入れて可能になりました。規則を作ったのは人ですから、絶対に変えられないものではないという教訓でした。


この記事が気に入ったらサポートをしてみませんか?