最終更新日: 2016/04/16
Excel VBAのルールを確認しながら、同じ処理をrubyではどう書くかをみていきます。
ExcelのVBAについて、下のサイトを参考にさせていただきながら記します。
上記は、Excelを起動してからVBE(Visual Basic Editor)によりマクロを入力する方式を前提にした解説です。rubyとは関係ありません。
そこで紹介されているマクロを素材として、関連の解説と補足、それから、類似の処理を行うrubyスクリプトを掲げ、VBAと比較する形で進めていきたいと思います。
rubyスクリプトは、win32oleを利用するものと、拙作exlapを利用するものの2種類を掲げます。
exlapは、ruby用のライブラリです。詳細は rubyのExcel操縦用ライブラリ exlap.rbを参照してください。
掲載するのは次の3種類のrubyスクリプトです。同等の処理を下の3種類の形で示します。
なお、スクリプトを実行した時に作成されるExcelのワークブックは、どの場合も Book1.xls です。
Control + j
のショートカットキーを割り当てます。当サイト内で紹介しているスクリプトなどをzip圧縮ファイルに収録してあります。
前述の3種類のスクリプトは、まとめて ExcelVBA_ruby.zip に収録しました。いずれもrubyスクリプトです。実行するにはrubyがインストールされている必要があります。
VBAマクロの部分だけを抜き出したものを ExcelVBA_macro.zip に収録しました。
これらマクロを試すだけなら、VBE上で入力してから実行すればいいのでrubyは必要ありません。
rubyをインストールするのが面倒だという人は、 ExcelVBA_bat.zipをダウンロードしてみて下さい。
これを解凍すると、多くのバッチファイルとexl21.exeというコマンドが出てきます。
エクスプローラ(マイコンピュータ)の上で一つのバッチファイルに焦点を当ててエンターキーをたたくと、そのバッチが実行されてBook1.xlsが作られます。
バッチファイルの中身は、最初の3〜4行こそ一般的なバッチですが、それ以降はrubyスクリプトになっています。
exl21.exeは、rubyがない環境でrubyスクリプトを実行するための簡易コマンドです。詳細は exl18.exeについてを参照して下さい。
スクリプトを私が実行した環境は次のとおり。
上記以外でも、Excelとrubyがインストールされていれば、たいていはスクリプトを実行できると思います。
ExcelVBA_ruby.zipに収録してあるスクリプトを実行するには、rubyがインストールされている必要があります。インストール方法についてはWebに多くの情報があるので参考にしてください。
VBAのマクロをExcelのワークブックに登録する処理は、rubyにより行います。
VBEを立ち上げてマクロのコードを入力する必要はありませんが、Excelのマクロ関連の設定をあらかじめ変更しておく必要があります。設定変更は一度やるだけでOKです。
ExcelをGUI操作して、次の設定変更を行います。具体的な操作方法は、Excelのバージョンによって違うのでここでは省略します。
上記は Excelのセキュリティを緩める処置です。あまり神経質にならなくてもいいとは思いますが、気になるようでしたら、「rubyによるマクロの登録」をやらない時はセキュリティを強化しておく方がいいかもしれません。
なお、「rubyによるマクロの登録」を行わないのであれば、つまり、win32oleのスクリプトとexlapのスクリプトだけに注目するのであれば、上の設定は必要ありません。
「Excel VBA 入門講座」では「Visual Basic Editorの起動」と、「コードの入力と実行」の説明がありますが、この二つは省略して、「オブジェクトとプロパティ、メソッド」から始めます。
ちなみに、Excelを起動した後で次ぎの二つのショートカットキーを入力すると、VBEが立ち上がり、そして、マクロのコードを入力する場面になります。
Alt + F11
: VBEの起動。F11はファンクションキー11のことです。F7
: コードウィンドウの表示。このウィンドウで Sub Macro1() [enter]
などと入力すると、マクロのおわりを示す End Sub
が自動的に書き込まれます。