VBAをRubyでテストする(4)
今回 テスティングフレームワークは RSpec を使用します。
RSpec をインストール
コマンドプロンプトを起動し、Rubyのバージョンを確認する。
コマンドプロンプトに install コマンドを入力する。
>gem install rspec
RSpecが無事にインストールされていることを確認する。
exlap.rb
Rubyから直接Excelを扱うのは多少やり辛いため 何かないかと探したことろ
T. Yoshiizumi氏 作成の exlap という良さげなライブラリが見つかりました。
使わさせて頂きます。ありがとう T. Yoshiizumi氏
T. Yoshiizumi - Excel用ライブラリexlap.rbの使い方
DLした exlap.rb を受注検索.xlsmと同じフォルダに保存し練習としてテストコードを書いてみます。
受注検索.xlsmに標準モジュール Module1 を追加し
Module1 に sayHelloプロシージャを書きます。
見てのとおり引数を渡すと ヘロー!{名前} と返すだけの処理です。
Option Explicit Function sayHello(ByVal str As String) As String If Trim(str) = "" Then str = "名無し" sayHello = "Hello! " & str End Function
sayHello_spec.rb を新規作成し sayHelloプロシージャのテストコードを書きます。
コマンドプロンプトから rspecコマンドでテストを実行します。
>rspec -fs sayHello_spec.rb
実行結果は 0 failures でした。問題ないようです。
VBAをRubyでテストする(3)
[受注検索] カスタムタブの社員IDと社員氏名はプルダウンでリスト表示する仕様にするため、リストの値をデータベースの [社員] テーブルから取得します。
まずはADOコネクションを管理するヘルパークラスを作ります。
hlpAdoConnect クラス
※フォントが妖しげな色になっていますがGistによるものです。ご了承下さい。
次に社員のモデルクラスを作ります。
mdlEmployee クラス
VBAをRubyでテストする(2)
受注検索.xlsm を作成
1. Excel2010を起動する。
2. [ファイル] > [名前を付けて保存]を選択する。
3. ファイルの種類を [Exce マクロ有効ブック (*.xlsm)] に設定し ファイル名を入力し [保存] ボタンを押します。
4. Alt + F11キーを押して Visual Basic Editor をする。
5. 今回はデータベースとの接続に ActiveX Data Objects というAPIを使います。
Visual Basic Editor の[ツール] > [参照設定]を押してライブラリのリストから[Microsoft ActiveX Data Objects 6.1 Library]というヤツを探しチェックを入れて[OK]ボタンを押します。
6. Excelに戻ります。UIとして[受注検索]というカスタムタブを用意しました。社員情報等の検索条件を入力し[実 行]ボタンを押すと検索結果がシートに出力される仕様とします。
カスタムタブの作成は Office Ribbon Editor というアプリを使用しました。
私はバージョン4.4.2を使いましたが、このアプリには若干のバグがあるようで、使うには注意が必要です。
[受注検索] カスタムタブのXMLです。