5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
田中 宏明さんの投稿
(投稿ID: 5271)
一見、難しそうな処理に見えるが、2つのテーブルを1:Nでマッチングすることに帰着させ、連想配列に動的配列(実際にはCollection)を格納する手法を用いました。Nが可変の場合にも対応できます。
<入力>
For-Next ループで連想配列にCollectionを格納し、一つのKeyに対して、複数アイテムをCollectionに入れる。
<出力>
For-Next ループで連想配列からCollectionを経由して、1:N でマッチング。
小川 慶一さんのコメント
(コメントID: 7475)
急場...だったのですね。
代替のマクロを書くのも簡単ではなかったのでは?とも想像しますが。どんなデータ形式だったのでしょうか。
ウェブから取得?グチャグチャなRになっているワード or エクセルファイル等...。興味あります。
入出力の流れ、簡潔な記述ですがよく理解できました。
今後は、RPAを修復する方向でいくのでしょうか。それとも、今回書かれたマクロをそのまま活かす方向で?
ひきつづきよろしくお願いいたします。
田中 宏明さんのコメント
(コメントID: 7476)
コメントありがとうございます。
RPA修復中ですが、今後はひそかに手元のマクロを使うことになりそうです。
(RPAはサーバ型で、本社がシステム部門に依頼して作成)
マクロで以下の改良を加えたことにより、RPAを使うメリットがなくなってしまいました。
・下記Dの特定フォルダの配下なら、どこに保存されていても動作
・下記Rを次の処理でそのまま使えるよう整形
・基幹システム内のデータをCSVダウンロードし、特定フォルダにセット
<RPA処理概要>
D:複数のExcelファイル(特定フォルダに保存)
P:テーブル1とテーブル2を1:Nでマッチング(ここがブラックボックス)
R:1つのExcelファイル
テーブル1:複数のExcelファイルを統合した1つのExcelファイル
テーブル2:基幹システム内のデータ
小川 慶一さんのコメント
(コメントID: 7477)
RPAあるある...という感じですね (^^;
CSVのDLもエクセルマクロで行っているのでしょうか。となると、ウェブブラウザでアクセスするシステムでしょうか。
であれば、エクセルマクロで全部できそうですね。
マクロご活用いただけていて、とてもうれしいです (^^*
田中 宏明さんのコメント
(コメントID: 7478)
小川 慶一さんのコメント
(コメントID: 7479)
なるほど、あー、それは楽勝ですね。かつ、今後の変更にもほぼノーストレスで対処できそう☆
田中 宏明さんのコメント
(コメントID: 7492)
考えました。 Application.Run "Book2.xlsm!マクロB"
正常動作に至るまでの間、いろいろ想定外なことが起こりました。
あまりお勧めできませんが、また一つスキルを習得できました。
小川 慶一さんのコメント
(コメントID: 7494)
やり方は考えるとまだまだいろいろでてきそうですね。
DPR的に言うと、別ファイルにPが散在させると保守が面倒です。
なので、Pだけを置いたエクセルファイルを用意し(Pの設定情報を記述するシートはあるかもしれないが、データ読み書き用のシートは置かない)、そのPから、 Book1, Book2 を開いて処理する...というようにするほうがすっきりするので、そういうアプローチもありかなと思います。
田中 宏明さんのコメント
(コメントID: 8480)
当時「学習記録としてメモを残す」に書いていた情報を付加絵し、生成AIに投稿を要約してもらいました。
===以下、ChatGPTとのやりとりです。===
Q.エクセルマクロ活用事例について、連想配列の活用を中心にこの投稿を要約してください。
A.連想配列を活用して業務効率化を実現した事例の要点を再整理します。
### 背景
会社のRPAシステムに不具合が発生したため、田中さんはExcelマクロ(VBA)と連想配列を活用し、業務プロセスを効率化しました。この方法によって複数のExcelファイルと基幹システムのデータを1:Nで照合し、RPAの代替を実現しました。
### 連想配列の活用方法
1. **データ管理**
連想配列にCollectionを格納することで、Excelファイルと基幹システムデータを効果的に管理し、1:Nの対応付けを実現しました。これにより、異なるファイルやシステム間のデータを効率的に照合することが可能になっています。
2. **文字列の正規化とパターン解析**
基幹システムとの部分一致によるデータ照合を行う際、データの整合性を保つために、半角・全角の統一や不要なスペースの除去を実施しました。さらに、キーとなる文字列を抽出するため、文字列のパターン解析も検討しています。
3. **エラー対応**
基幹システム内のCSVデータを扱う際、TextStreamオブジェクトで読み取り、システム変更によるエラーには「dLib for Excel VBA」を活用することで、不具合を克服しました。
### 業務フローの概要と連想配列の位置づけ
- 各種ファイルの整理、Excelファイルの展開、不備確認、調査リスト作成、照合、結果の記入まで、連想配列を軸にしたデータ処理が行われています。
- 連想配列にオブジェクトを格納することで、複数のExcelファイルやデータ要素を動的に扱い、効率的な照合・更新が実現されました。
### まとめ
田中さんの投稿は、Excelマクロの連想配列機能を活用して、複雑なデータ照合と自動化を実現した好例です。連想配列とCollectionの組み合わせにより、業務プロセスの省力化と柔軟なデータ管理が可能になっています。
AIユーザさんのコメント
(コメントID: 8481)
田中さん、詳細な投稿とその要約を共有していただき、ありがとうございます。Excelマクロと連想配列を活用した業務効率化の方法についての事例は、他の受講生にとっても非常に参考になりますね。
連想配列を使ったデータ管理や1:Nの対応付け、そしてエラー対応の工夫など、具体的な手法がしっかりと整理されていて素晴らしいです。特に、連想配列とCollectionの組み合わせによる柔軟なデータ管理は、多くの場面で応用できる技術です。
今後も、学習した内容を実務で活かし、さらにスキルを高めていってください。もし、さらに深堀りしたいテーマや新たな課題が出てきた際には、ぜひまたご相談ください。応援しています!
小川 慶一さんのコメント
(コメントID: 8482)
この要約を読むだけでも臨場感伝わってきます。
ひきつづき、ご活躍を! v(^^