タツノオトシゴのブログ

主にJavaに関するものです。

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にしても使えます。

リポジトリ
現在は、GitHub上で公開しています。

【ダウンロード先】


【注意事項】
利用する際は、「書式」「設定」タブで設定する設定値を入力する値を必要があります。単純に、「初期値」に設定すれば使えます。


【動作確認環境】

  • Win7(64bit) + Excel2010(32bit)
  • Win7(64bit) + Excel2007(32bit)
  • WinXP(32bit) + Excel2002(32bit)

修正内容

  1. DDLファイル生成時に、区切り文字、コメントの文字列の変更が反映されない不良を修正。
  2. DDLファイル生成前に、書き込み可能なパスかをチェックするよう入力値検証を修正。WinVista/7以降の場合、UACの関係により、C:\ドライブ直下にファイルが作成できない場合があるため。
  3. DDLの出力先のフォルダ選択時のダイアログを「Shell→FileDialog」に変更。Shell方式のツリー形式の場合は個人的に使いづらいため。
  4. Excel2007以上の場合、ER図生成において、テキストボックスの高さを調整し、印刷しても文字が切れないよう調整。
  5. Excel2007以上の場合、ER図生成において、図形の背景色や罫線がデフォルトの設定になり崩れる現象を修正。Excel2007の場合は、図形の背景が黒くなる事象。図形の背景や罫線を固定にすることで対応。
  6. Excel2007以上の場合、ER図生成において、テキストボックスのフォントにが、正しく反映されない現象を修正。Office2007からテキストボックスとして、日本語用のフォントと英字用のフォントが分割されたため、それぞれ“MS ゴシック”を指定するよう修正。
  7. Excel2007以上の場合、ER図生成において、生成するシートに既存のER図が存在するとエラーとなる現象を修正。Excel2007以上の場合、図形名が重複してると、グループ化に失敗するため、古い図形の名前を変更し、エラーを回避するよう修正。ただし、このケースの場合、関連線がおかしくなるのは未修整

追加機能

  1. DDLファイル作成後に、生成したDDLファイルを開くアプリケーションとして既存のノートパッドか、OSに関連づいているものかを選択できるチェックボックスを追加。
  2. ER図作成の際に、物理名+論理名の両方を選択できるよう機能を追加。

Excel2007以上で利用する場合の注意事項

ExcelERDの起動

Office2007からツールバーの機能がなくなったため、リボンの「アドイン」の中の「ERD作成」から起動する必要があります。

ER図のリバース生成時の注意点

Excel2007以上というより、OSの注意点。

  • ER図のリバース生成はODBCで接続するが、OSが64bitで、Officeが32bitの場合、32bit用のODBCマネージャで設定する必要がある。Excelの機能のデータソース接続ができれば、ExcelERDからも接続ができる。
  • ExcelERDからODBC接続する際のデータソースの選択候補が正しく表示されない場合がある。このような場合は、データソース名を直接入力する必要すれば接続できる。この現象は、環境依存なのか不明。
  • PostgreSQLODBC接続の場合、9.x系のDLLで接続に失敗する。そのため、8.x系の32bitのODBCドライバを入れる必要がある。

【32bit版のODBCの接続手順の情報】

Excel2003以下で作成したER図をExcel2007以上で開いた場合の注意事項

テキストボックスの高さがExcel2003ように調整されているため、切れていたりすることがあります。
その際は、図形を選択して一括で高さを調整するか、ER図を生成しなおしてください。

今後の予定

  1. GitHub上で、ソースコードを管理し、Apache License 2.0にのっとり公開する。
  2. リバースエンジニアリング機能において、DBからテーブル定義情報のシートを作成する機能を追加する。
  3. VBAのマクロのソースコード抽出/取り込みするツール「ariawase」の中のvbacを使って、バージョンアップを簡単にできるようにする。

【ariawase】
GitHub - vbaidiot/Ariawase: Ariawase is free library for VBA cowboys.