リストHOME  リストOpen Source

VBA簡易構文解析

お知らせ

2024/02/12

 不具合修正です。

  1. 列挙定数値への参照チェックが行なわれていなかった不具合修正。
  2. 右側にコメントが存在していた場合の不具合修正。
  3. メンバー参照内でコンマが存在したときの不具合修正。
  4. 引数名への直接代入における不具合の修正。

概要

 今回は、VBAプログラムの簡易構文解析(パーサー)を公開したいと思います。

 構文解析を行なうには、コードが記述されたモジュールをすべてエクスポートする必要があり、それらのファイルと一緒に、解析対象のエクセルブックを解析することで、パース処理が実行されます。解析結果をテキスト形式で出力するようにしてありますので、一度、確認してみてください。

 パーサーを作成した目的は、プログラムのコメントからドキュメント(資料)を自動作成する機能を作りたいと思ったからで、次は、このパーサーを利用した、ドキュメント作成アプリを作りたいと考えています。

 自分で作ったプログラムの資料(構造設計書)が自動で作成できたら、なんか嬉しいですよね。


 テストが不十分なところがありますので、不具合に気付いたら、逐次、改善していこうと思っています。その都度、最新のものを、このページにアップするつもりですので、時々、覗いてみてください。


 Javaというプログラム言語には、Javadoc(ジャバドック)というツールが付属しており、ある規則に従って、プログラムのコメントを記述しておけば、これを解析し、自動でHTML形式の簡易なソフトウェア構造設計書を出力することが、出来るようになっています。

 これと同等のものをエクセルVBAで作成したいと考えています。ちなみに、HTML形式ではなく、エクセルの資料を出力する仕様にしようと思っています。


 ソースコードは、Microsoft社の製品 エクセル向けに書いたものなので、利用するには、ご使用のコンピュータに、エクセルがインストールされていることが、必須条件です。


 以下は、サンプル画面です。

VBA簡易構文解析のサンプル


技術ポイント


所感

 Javadocみたいな物を作りたいと思って、始めた作業だったのですが、作り始めて思ったのが、なかなか思ったより大変だったというのが正直な印象です。VBAとしての仕様が公開されていない部分があったり、関数一覧などのマスターデータを作成しなければ、いけないところがあったりするので、時間がいくらあっても足りないような、気がしました。

 ですので、マスタなどは、使いながら、自分で作成していくような仕様にしてあります(存在しないものを自動登録して、それをユーザが手直しするような仕様)。慣れるまで、少し時間がかかるかもしれませんが、慣れてくれば、案外、使いやすい感じがしてくるかと思います。なので、意外と、こういった仕様にして良かったのかなと思ったりも、しています。


 作成するのに時間がかかり、テストが不十分なところがあるかと思います。フリーソフトというところで、ご了承いただけたらと思います。バグなどを発見したら、ご連絡ください。


改善案

 簡易パーサーというところで、仕様による機能制限が幾つかあります。それらの制限を解除していく方向で、機能を改善していくのが良いと思います。例えば、定数などに記述されている演算式については、展開して値を求めていませんので、最終的な演算結果としての値を算出するよう改善するのもありだと思います。



ダウンロード



サンプルデータについて

 サンプルに含まれるデータは、私の創作によるものです、サンプルデータに含まれる個人名、会社名などの情報は、実在の人物とはまったく関係ありません。



免責事項

 作者は、本ソフトウェアの使用または使用不能から生じるコンピュータの故障、情報の消失、その他あらゆる直接的及び間接的被害に関して一切の責任を負いません。



不具合の報告

 ご使用にあたり、改善の要望、不具合の発生等ありましたら、画面下のアドレスまで、ご連絡頂きますよう、宜しくお願いいたします。ご面倒、ご不便をお掛けしますが、宜しくお願いいたします。




休日判定・ページのフッター
管理者のメールアドレス