![見出し画像](https://assets.st-note.com/production/uploads/images/145176425/rectangle_large_type_2_70a138ef807ba4837d8e5bf330dad9c6.png?width=1200)
Excelに、社内システムのデータを自動取得する方法4選+1
社内システムデータを、Excelでお手軽活用
社内システムとは、イントラネットとも呼ばれ、日常の業務連絡・報告などに使う他、大抵の場合、前月の売り上げ実績など、報告で吸い上げたデータを集計した結果の「業務処理データ」がダウンロードできる機能などがあります。
![](https://assets.st-note.com/img/1719293783446-fQET4AAHDf.png?width=1200)
当社がかかわった多くの事例において、何らかの業務を行うにあたって社内システムとデータの授受をしているケースがかなり多くありました。
Excelで、データを取り出す方法4選
社内システムのデータを手入力するのではなく、Excel側に自動取得できれば、高速かつ正確性も飛躍的に向上します。
大抵の社内システムはデータベースを活用しているので、技術的にはExcelから直接データを操作(読み取り/書き込み)することは可能です。
とはいえ、管理上「何らかの制約」があることが多く、他の方法も併せてデータの自動授受(取得・登録)方法を探ることになります。
1.データベースの読み取り権限だけ貰う
データベースに接続する場合、他のシステム同様「アクセス権限」が必要になります。どんな処理系でも「全権限」「読み書きできる権限」「読み取り専用権限」があります。情報システム部門としては、「書き込み権限」を他者に委ねることで、データの「完全性」「機密性」が担保されなくなる懸念から非常に抵抗があり、このため「DBへの直接接続はNG」という見解になりがちです。しかし、現場のニーズとしては「読み取りのみ権限」があれば十分なケースが多いのです。
![](https://assets.st-note.com/img/1719291223827-JJg30Gju50.png)
例えば、Excelのシート上に前月の売上を商品グループ単位で表示させたいといったニーズがあったとして、DBに書き込みに行く必要は全くなく、当該部署に関係のあるデータ範囲に限って読み取り(閲覧)、その後Excelの機能(PowerPivotなど)で集計できればよいのです。
こうした説得のような交渉がうまくいけば、Excelの「外部データの取り込み」機能を活用したり、SQL(データベース操作言語)を使ってデータを加工することができるようになります。
コスト的にも、処理速度的にも、一番有利な方法で、機能的な拡張性にも優れた方法です。
2.システム側が用意したAPIを使う
大抵のシステムでは、各種データを直接授受ができる口(I/Fと書いて、インターフェースと呼びます)を設けており、APIと呼ばれています。身近な例としては、Amazonにおいて、自分で作ったプログラムなどから書籍のISBN情報を基に、書名や価格などを取り出すことができるAPIが提供されています。
社内システムのAPIの一部を開放してもらえれば、プログラムからAPIを通して「こんな条件で、データを下さい」的な手続きをすることで、直接Excelのシート上にデータベースの内容を取得できます。
![](https://assets.st-note.com/img/1719291284288-mkYyIC4ELm.png)
この場合、APIは開発側の意思で作られたものなので、どのような手順で授受すればよいかは、社内システムの開発側にしか分かりません。開発側(多くは情報システム部門が絡んでいます)がAPIの仕様を公開してくれれば、ExcelのVBA(マクロ)から呼び出してデータ取得が可能となります。
開発期間が長くなりがちのため、コスト的には少々負担が増えますが、データベースの構造や場所などを公開する必要がないことから、情報セキュリティ(機密性)を維持しつつ利便性を高める方法として、近年採用が増えています。
3.利用者向けの画面から、CSVをダウンロードする
多くの場合、社内システムからは、登録されたデータをcsv形式のファイルとしてダウンロードする機能があります。なくても、データベースからデータをダウンロードするだけの機能であれば、慣れれば比較的容易にスクリプト化できます。
どのデータをダウンロードできるようにするかは、制作側の人にしかわかりませんが、メニューを見れば当たりがつくはずです。
![](https://assets.st-note.com/img/1719291345534-UCsWSbzcAr.png)
このcsvデータをExcelのシートに読み込むことで、少なくとも手入力よりも遙かに短時間で、間違いの無いデータを確保できるようになります。
4.Excelからブラウザを自動制御
多くの社内システムは、ブラウザを使って利用します。
Excelもマクロを使えばブラウザを直接操作することができるので、人が操作しているのと同じ操作を、ExcelのVBAから実行すれば、「メニューからxxxを選択し、年月と△△△を選択して☆☆☆のボタンを押せば、データファイルがダウンロードされる」といった操作を、Excel側から操作できます。
社内システムのhtml構造の複雑さによっては分析に時間がかかるのと、ブラウザのバージョンが上がると設定ファイルを入れ替える必要があるなど、コスト・運用ともに敷居が高いのですが、情報システム部門からあらゆる接続をお断りされても、この方法なら断る理由がなく、拒絶されることは無いでしょう。
RPAでも同様のことができますが、可変要素をシート上に設定しておける手軽さがあるのに加えて、WindowsのUpdate時に急に動かなくなる、といった心配を減らせます。
実際に動いているイメージは、こちらをご覧下さい。
5.全て断られた場合 (情シスにお願い)
ちょうど先日、某社の情報システム部門から「利用者側のコンピュータでは、あらゆるプログラムを動かしてはいけない」として、VBA(マクロ)で動くプログラムの受入れをお断りされた事がありました。理由を聞いたら「セキュリティ上の理由のため、回答できません」とのこと。元々手作業で当該作業を行っていることから、情報漏洩リスクが増加する懸念はなく、寧ろ人的ミスが起こりえる状態が放置されているわけですから、情報セキュリティの3要素の1つ「完全性」が損なわれており、皮肉なことに「セキュリティを維持させないことが目的」になっています。
こんな時には、情報システム部門に「データをダウンロードするしくみを作って下さい」とお願いするのも手です。
![](https://assets.st-note.com/img/1719291661800-GGCo2TUY1M.png?width=1200)
「忙しい」と断られることも予想されますが、元々データベース管理機能にある機能を活用するだけなので、実はそれほど難しい内容ではありません。主要データのみダウンロードする機能に絞った上で、年度予算編成で取り上げて貰えるタイミングで交渉すれば、「利用者に勝手にいじられては困る」という「お断りの理由」がなくなる分、成功確率が高くなります(あくまで過去の経験ですが)。
なお、先の「プログラムお断り」の企業では、説得が効いたのか別の押しが効いたのかわかりませんが、その後受け入れて可能になりました。規則を作ったのは人ですから、絶対に変えられないものではないという教訓でした。
この記事が気に入ったらサポートをしてみませんか?