ExcelERDのExcel2007/2010対応
DB周りのツールとして、個人的にお気に入りの「ExcelERD」というものがあります。
Excelで定義したシートをもとに、DDLファイル、ER図などを作成できます。
↓公式サイト
ExcelERD 目次
しかし、開発が2007年で止まっており、Excel2003までしか対応していません。
Excel2007でも動作はしますが、生成したER図がおかしくなったります。
そこで、既存の不良も含めて、自分で修正してみました。
もう、こんな古いものを使うよりかは、「ERMaster」や「A5:SQL Mk-2」を使えばいいじゃんと意見があるかもしれませんが、Excelベースで簡単に一覧で管理したいときは、このフォーマットが使いやすいと思います。
あと、「XLSBeans+Velocity」とを組み合わせて、O/RMのソースを生成するときに扱いやすいフォーマットでもあります。
リポジトリ・ダウンロード先
Excel2007以上の場合、形式をxlsmにしても使えます。
【ダウンロード先】
https://googledrive.com/host/0BzR3hjGfqNYFZUlDQTg5dnh4cUU/ExERD.xls- https://github.com/mygreen/ExcelERD/releases
【注意事項】
利用する際は、「書式」「設定」タブで設定する設定値を入力する値を必要があります。単純に、「初期値」に設定すれば使えます。
【動作確認環境】
修正内容
- DDLファイル生成時に、区切り文字、コメントの文字列の変更が反映されない不良を修正。
- DDLファイル生成前に、書き込み可能なパスかをチェックするよう入力値検証を修正。WinVista/7以降の場合、UACの関係により、C:\ドライブ直下にファイルが作成できない場合があるため。
- DDLの出力先のフォルダ選択時のダイアログを「Shell→FileDialog」に変更。Shell方式のツリー形式の場合は個人的に使いづらいため。
- Excel2007以上の場合、ER図生成において、テキストボックスの高さを調整し、印刷しても文字が切れないよう調整。
- Excel2007以上の場合、ER図生成において、図形の背景色や罫線がデフォルトの設定になり崩れる現象を修正。Excel2007の場合は、図形の背景が黒くなる事象。図形の背景や罫線を固定にすることで対応。
- Excel2007以上の場合、ER図生成において、テキストボックスのフォントにが、正しく反映されない現象を修正。Office2007からテキストボックスとして、日本語用のフォントと英字用のフォントが分割されたため、それぞれ“MS ゴシック”を指定するよう修正。
- Excel2007以上の場合、ER図生成において、生成するシートに既存のER図が存在するとエラーとなる現象を修正。Excel2007以上の場合、図形名が重複してると、グループ化に失敗するため、古い図形の名前を変更し、エラーを回避するよう修正。ただし、このケースの場合、関連線がおかしくなるのは未修整。
追加機能
Excel2007以上で利用する場合の注意事項
ExcelERDの起動
Office2007からツールバーの機能がなくなったため、リボンの「アドイン」の中の「ERD作成」から起動する必要があります。
ER図のリバース生成時の注意点
Excel2007以上というより、OSの注意点。
- ER図のリバース生成はODBCで接続するが、OSが64bitで、Officeが32bitの場合、32bit用のODBCマネージャで設定する必要がある。Excelの機能のデータソース接続ができれば、ExcelERDからも接続ができる。
- ExcelERDからODBC接続する際のデータソースの選択候補が正しく表示されない場合がある。このような場合は、データソース名を直接入力する必要すれば接続できる。この現象は、環境依存なのか不明。
- PostgreSQLのODBC接続の場合、9.x系のDLLで接続に失敗する。そのため、8.x系の32bitのODBCドライバを入れる必要がある。
【32bit版のODBCの接続手順の情報】
Excel2003以下で作成したER図をExcel2007以上で開いた場合の注意事項
テキストボックスの高さがExcel2003ように調整されているため、切れていたりすることがあります。
その際は、図形を選択して一括で高さを調整するか、ER図を生成しなおしてください。
今後の予定
- GitHub上で、ソースコードを管理し、Apache License 2.0にのっとり公開する。
- リバースエンジニアリング機能において、DBからテーブル定義情報のシートを作成する機能を追加する。
- VBAのマクロのソースコード抽出/取り込みするツール「ariawase」の中のvbacを使って、バージョンアップを簡単にできるようにする。
【ariawase】
GitHub - vbaidiot/Ariawase: Ariawase is free library for VBA cowboys.