執筆:EugeneAmnis
マスターデータはCSVにしませんか?
Excelを使った作業で別のマスターデータから必要なデータを参照して、それを元に作業を進めるというのが多いと思います。
私自身もExcel for MacのVBAでそのような仕組みを組んでほしいという仕事の依頼を受けたことがありますが、そのマスターデータがデータベース等のExcelからは編集が難しいものであればよいのですが、マスターデータもExcel形式というパターンも多いかと思います。この場合、いくつかの問題点が浮かび上がります。
まず、マスターデータを誤って編集する可能性がある。ブックをロックされてしまう可能性がある。マスターデータが開いているか閉じているかで挙動が変わる。これらをVBAで対処しようとしてもかなり難しい場合が多いです。本来Excelは多人数で利用することを想定して作られていない為です。
しかし、全ての職場でデータベースを組むなどは難しいのも理解できます。それではどうするのか?私が提案したいのはCSVファイルをマスターデータにしてデータの接続を利用するです。
データの接続とは
こちらでも紹介していますが、Excelの標準機能の一つです。手順に従い、CSVなどのテキストファイルをインポートし、任意のタイミングで更新ができるものです。ここでは具体的な手順は説明しませんが、難しい操作などは一切ありません。
今現在、Excelファイルでマスター管理をされている場合は該当データを共有フォルダ等にCSVファイルとしてエクスポートし、参照側はデータの接続で共有フォルダに出力されたCSVファイルをインポートすれば、デメリットであるマスターファイルの誤編集などを防ぐことができます。
ただ、このやり方は毎度マスターデータを所定のフォルダにCSVファイルとして出力する手間が発生し、マスターファイルの管理者に大きな負担を掛けます。
VBAの出番、又はFormeStudio2.65
そこでVBAの出番です。ファイルパスを指定して自動的に出力するVBAを組むことでマスターファイルの管理者の負担軽減に寄与します。またテキストファイルの出力用のVBAコードは幾らでもネットに転がっています。この方法の問題点はプログラミングが苦手な人間はどうするんだということです。そんな方にはFormeStudioがあります。
FormeStudioはカイゼン・ハンディターミナルアプリForMeの設定、データ収集用のマクロシートとして作成されていますが単体でも使用できます。FormeStudioではテーブルデータをCSVファイルに出力する機能があり、これを利用してみて下さい。
- 「CSVデータベース追加」 > 「BLANK」でテーブルシートを追加。
- テーブルを編集し、シート名を変更する。シート名がファイル名になります。(Excel for Macでは英数字以外は使用できません。)
- シートのA2セルに「フォルダパスを入力」機能でCSVファイル出力先フォルダを選択する。(Excel for Macでは英数字以外のパスはエラーになります。)
- 「エクスポート」 > 「TABLE2CSV」で「はい」を選択する。上書き確認が表示されるので「はい」を選択する。A2セルに入力されたパスにCSVファイルが出力されます。(A2セルにフォルダパスの入力がない場合は保存先選択ダイアログが表示されます。)
マスターデータの参照者は初回にエクスポートされたCSVファイルをデータの接続でインポートし、設定で「Excelファイルを開くときにデータを更新する」にチェックを入れることで自動更新が可能になります。尚、設定の変更をしない場合は手動でデータの更新をする必要があります。
今回はExcelの1ユーザーとしての意見を述べてみました。全く煮詰めていないので機会があれば自分自身でチャレンジしてみたいです。