RubberduckのTips

はじめてのアドベントカレンダー17日目の記事です。

※ サムネイルはRubberduckホームページのものを引用しています。

この記事で伝えたいこと

前回Rubberduck + Gitでプログラムを管理する方法について書きましたが、他にもいくつか便利な機能があります。

便利な機能

Unit TestingCode InspectionsRefactoringsNavigatorなどの主要な機能についての説明は以下の記事などで説明されているので省きます。

その他に便利な機能として主に次の二つが挙げられます。

  1. Annotations
  2. Peek Definitions

Annotations

変数に対する説明や、サブルーチン・関数・クラスが担当する処理、そしてモジュール単位での説明も加えられ、なおかつ、どこからでもその説明を参照できます。

例えば次の様な、簡単なプログラムに説明を付け加えます。

Public Function DoubleValue(ByVal Value As Integer) As Integer
    DoubleValue = Value * 2
End Function

このプログラムに対して、@Description接頭辞を付け、なおかつコメントアウトすることで説明を加えられます。

'@Description("値を二倍にして返す")
Public Function DoubleValue(ByVal Value As Integer) As Integer
    DoubleValue = Value * 2
End Function

実際の画面では↓のように、VBEの上部に説明が表示されます。

実際の画面
実際の画面

Peek Definition

変数・サブルーチン・関数・クラスなどが、どのように定義されているのかを確かめられます。デフォルトのショートカットキーはCtrl + Shift + Dです。

先ほどの関数を呼び出しているMainサブルーチン内のDoubleValue関数上でCtrl + Shift + Dを押下します。すると下図のように定義した部分が示されます。

定義の閲覧
定義の閲覧

まとめ

モダンなエディタであれば自動的に変数や関数の引数の説明を行ってくれるのですが、素のVBEだとそういうことをやってくれないので結構辛い。

上記で紹介した機能は、誰が書いたかも、どういう処理なのかも分からないVBAプログラム という名の古文書 を解読する一助になると思います。

それはそうとRubberduckはサポーターを募集しています。また、Rubberduck3の開発も進んでいます。

蛇足

ここまでVBAの話をしてきましたが、そもそも「令和の時代にガッツリVBAプログラムを書いてアプリを作るべきかどうか」という点についてはしっかりと検討する必要があると思っています。例えば単にExcelファイルを操作するだけなら(ほとんどの場合で)、C#Node.jsのライブラリを使えば目的を達成できると思います。

  • 今作っているアプリを今後も使う続けるかどうか
  • 開発者の使える言語
  • 使う頻度
  • アプリの規模
  • 開発者自身のアプリの開発・運用スキル・ドキュメント作成のチーム内文化

などを鑑みて、明らかにVBAアプリに暗い未来しか見えないのであれば、重い腰を上げて他の言語で作ることも考えてみてはいかがでしょうか。。