CytoscapeでEXCELのオブジェクトモデルを表現する

 オブジェクトブラウザーは VBA のオブジェクト構造を記述したものである.しかし,EXCEL 全体のオブジェクトモデルを一覧できるような機能はない.今回,全く別領域のソフトウェアを用いて EXCEL のオブジェクトモデルを表現してみたので備忘録として公開する.

Cytoscapeとは

 ネットワークモデルはグラフで表現したモデルのことで,ノード(節)とエッジ(パス)からなる.特殊例として階層型モデル,木構造などがある.

 Cytoscape は日本人が開発したネットワークモデルを可視化するソフトウェアである.もともとは代謝マップ,遺伝学的相互作用,タンパク質相互作用,転写制御ネットワークなど,ライフサイエンスデータを可視化するために作られた経緯がある.しかし,その汎用性はその領域に限らず,応用範囲は極めて広い.

EXCELのオブジェクト構造を可視化したい

 手元にオブジェクトブラウザーの一覧がある.クラス,メンバー,戻り値の3列に参照設定のファイル名およびライブラリ名の 2 列を加えた 5 列からなるテーブルである.これを可視化してみたい.特にオブジェクト間の関係を可視化したい.

EXCEL のバージョン

 EXCEL のバージョンは2104, ビルド 13929.20386 である.16.0.13929.20360 とも表記する.

Cytoscapeをインストールする

 インストーラはここにある.

Cytoscape3.8.2のインストーラ
Cytoscape3.8.2のインストーラ
Cytoscape3.8.2のインストーラファイル
Cytoscape3.8.2のインストーラファイル
Java Runtime Environment が見つからないのでダウンロードするかの確認
Java Runtime Environment が見つからないのでダウンロードするかの確認
Java Runtime Environment をダウンロード中
Java Runtime Environment をダウンロード中
Cytoscape setup Wizard
Cytoscape setup Wizard
GNU Lesser General Public LicenseをAccept
GNU Lesser General Public LicenseをAccept
インストールディレクトリの指定
インストールディレクトリの指定
デスクトップアイコンを作成するにチェック
デスクトップアイコンを作成するにチェック
Cytoscapeセッションファイルを作成するにチェック
Cytoscapeセッションファイルを作成するにチェック
一般的な使用情報の収集に同意するにチェック
一般的な使用情報の収集に同意するにチェック
Cytoscape Setup Wizard 完了画面
Cytoscape Setup Wizard 完了画面

Cytoscapeの起動

Cytoscape起動画面
Cytoscape起動画面

Cytoscape初期画面

Cytoscapeの初期画面
Cytoscapeの初期画面

yFiles Layout Algorithms をインストール

 グラフの表現においては yFiles Layout Algorithms のインストールが必須と言える.

 Apps メニューの App Manager… を選択する.

Apps メニューの App Manager... を選択
Apps メニューの App Manager… を選択

 App Manager ダイアログが開く.

App Manager
App Manager

 中段を下にスクロールしていくと yFiles Layout Algorithms が見つかるのでクリックして選択し Install ボタンをクリックする.

yFiles Layout Algorithms を探して選択しInstall
yFiles Layout Algorithms を探して選択しInstall

 Accept をクリックして yFiles Layout Algorithms のソフトウェアライセンスを了承する.

yFiles Layout Algorithms のソフトウェアライセンスを了承する
yFiles Layout Algorithms のソフトウェアライセンスを了承する

 インストール後の Layout メニュー.yFiles Layout Algorithms が使用できるようになっている.

yFiles Layout Algorithms インストール後
yFiles Layout Algorithms インストール後

 こちらはインストール前.グレーアウトしていて使用できない.

yFiles Layout Algorithms インストール前
yFiles Layout Algorithms インストール前

EXCEL ファイルをドラッグアンドドロップ

 左側のペインに EXCEL のファイルをドラッグアンドドロップする.

EXCELファイルをドラッグアンドドロップ
EXCELファイルをドラッグアンドドロップ

 Import Network From Table ダイアログが開く.

Import Network From Tableダイアログが開く
Import Network From Tableダイアログが開く

クラスを Source Node に,メンバーを Interaction Type に,戻り値を Target Node に指定

 オブジェクトブラウザーでのクラスを Source Node と指定し,戻り値を Target Node と指定することで有向グラフとなる.

 緑の丸が Source Node である.

Source NodeにCLASSを指定
Source NodeにCLASSを指定

 紫の三角が Interaction Type である.

Interaction TypeにMEMBERを指定
Interaction TypeにMEMBERを指定

 オレンジの的が Target Node である.

Target NodeにRETURNを指定
Target NodeにRETURNを指定

 Source Node, Interaction Type, Target Node を指定した状態.ここで OK をクリックすると描画される.

Source Node, Interaction Type, Target Node を指定した状態
Source Node, Interaction Type, Target Node を指定した状態

初期設定は Prefuse Force Directed OpenCL Layout

 初期設定は Prefuse Force Directed OpenCL Layout であるが,密集していて分かりづらい.様々なレイアウトを試していくことにする.

初期設定は Prefuse Force Directed OpenCL Layout
初期設定は Prefuse Force Directed OpenCL Layout

yFiles Circular Layout

 yFiles Circular Layout は見た目はすっきりしている.

yFiles Circular Layout
yFiles Circular Layout

yFiles Hierarchic Layout

 yFiles Hierarchic Layout はオブジェクトの階層関係が分かりやすい.

yFiles Hierarchic Layout
yFiles Hierarchic Layout

yFiles Organic Layout

 yFiles Organic Layout は自然なレイアウトになっていると感じる.

yFiles Organic Layout
yFiles Organic Layout

Range オブジェクトを探す

 EXCEL VBA においては Range オブジェクトの取得が必須である.上に挙げた代表的なレイアウトのうち,yFiles Hierarchic Layout から Range オブジェクトを探してみる.

 中段の右寄りにある.様々なオブジェクトからエッジが集中しており,Range オブジェクト自体へもエッジが出力している.ちなみに上段の中央でエッジの集中しているのは Application オブジェクトである.

Range オブジェクトと Worksheet オブジェクト
Range オブジェクトと Worksheet オブジェクト

まとめ

 オブジェクトブラウザーから抽出したテーブルを元に,Cytoscape を用いて有向性グラフを作成し,オブジェクト間の構造を可視化した.オブジェクトの階層関係を見るには yFiles Hierarchic Layout が有効であった.

 今後の課題としては,任意のオブジェクトを選択した際,下位のオブジェクトを自動で釣り上げられるようにしたい.SQL だと再帰クエリを使うことになるが,Cytoscape 単独で可能か否か,わからない.

 筆者は Cytoscape の使用法に関しては素人である.他にもっと有効な使用法があると思われるが,コミュニティの中で議論されたい.参考までに今回の可視化に使用したデータファイルを置いておく.文字コードは UTF8 である.1行目はヘッダーで REFERENCE, LIBRARY, CLASS, MEMBER, RETURN である.

 制限事項として,オブジェクトモデルのみのデータファイル(1057行)であり,戻り値を持たないSubプロシージャ,Long, Single, Double, String, Object, Variant, その他単なるデータ型を返すプロパティや関数,イベントを削除してある.その際,文脈により暗黙の型変換が起こるObjectやVariantも削除されている可能性があるため,不完全なモデルである.

EXCEL_ObjectOnly

 Property, Sub, Functionすべてを網羅したデータファイルについてはこちらを参照されたい.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください