ExcelVBAの散策とruby – はじめに&準備

最終更新日: 2016/04/16

 Excel VBAのルールを確認しながら、同じ処理をrubyではどう書くかをみていきます。


《目次》


はじめに

 ExcelのVBAについて、下のサイトを参考にさせていただきながら記します。

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 です。

    

(1) VBAマクロを登録するためのスクリプト
Excelのワークブックにマクロを登録する作業をrubyで行います。VBEを起動してマクロを入力する手間が不要になります。また、マクロには Control + j のショートカットキーを割り当てます。
(2) win32oleのスクリプト
VBAのマクロを組み込むのではなく、同等の処理をrubyのwin32oleによって行うスクリプトを掲げます。
(3) exlapのスクリプト
VBAのマクロを組み込むのでなく、同等の処理をexlapによって行うスクリプトを掲げます。

zip圧縮ファイル

 当サイト内で紹介しているスクリプトなどをzip圧縮ファイルに収録してあります。

(1) rubyスクリプト

 前述の3種類のスクリプトは、まとめて ExcelVBA_ruby.zip に収録しました。いずれもrubyスクリプトです。実行するにはrubyがインストールされている必要があります。

    

(2) VBAマクロ

 VBAマクロの部分だけを抜き出したものを ExcelVBA_macro.zip に収録しました。

 これらマクロを試すだけなら、VBE上で入力してから実行すればいいのでrubyは必要ありません。

    

(3) バッチファイル

 rubyをインストールするのが面倒だという人は、 ExcelVBA_bat.zipをダウンロードしてみて下さい。

 これを解凍すると、多くのバッチファイルとexl21.exeというコマンドが出てきます。

 エクスプローラ(マイコンピュータ)の上で一つのバッチファイルに焦点を当ててエンターキーをたたくと、そのバッチが実行されてBook1.xlsが作られます。

 バッチファイルの中身は、最初の3〜4行こそ一般的なバッチですが、それ以降はrubyスクリプトになっています。

 exl21.exeは、rubyがない環境でrubyスクリプトを実行するための簡易コマンドです。詳細は exl18.exeについてを参照して下さい。


実行環境

 スクリプトを私が実行した環境は次のとおり。

 上記以外でも、Excelとrubyがインストールされていれば、たいていはスクリプトを実行できると思います。


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が立ち上がり、そして、マクロのコードを入力する場面になります。


「ExcelVBAの散策とruby」トップページ

cup.sakuraのトップページへ