rubyのExcel操縦用ライブラリ exlap.rb
短いスクリプト記述でExcel操作を自動化 〜 VBAの手法を利用しつつrubyの効率性をいかして、簡潔なスクリプトでExcelを操縦します。わずらわしいキー・マウス操作から逃れる手段になります。
ライブラリの最終更新日: 2016/05/12
最新ZIPアーカイブ: exlap120.zip: ver 1.20
- book_open, close の両メソッドの引数の仕様を変更。VBAの Workbooks.Open, Workbook.Close と同じように引数を指定可能に。
- select_sheetメソッドを引数なしで呼び出したときは、VBAのActiveSheetを返すように改訂。
exlap120.zipには exlap.rb, exlap_utf.rb およびインストール用のスクリプトと簡単な解説ドキュメントが含まれています。修正点は当サイトの後ろの方に掲載しています。
exlapに関連するファイル一式が含まれているのはexlap114.zipの方です。各種サンプルスクリプトとその解説文も含まれています。必要に応じてダウンロードして下さい。
サンプルスクリプトにおいて xxx.Range, xxx.QueryTables, xxx.PivotCaches などのように大文字で始まるメソッドやプロパティは、VBAのやり方をそのまま踏襲したものです。なのでVBAプログラミングに簡単に逆輸入できます。
一方、xxx.range_allbox とか xxx.findf などのように小文字で始まるメソッドは、rubyスクリプトとして独自に設けたものです。VBAでは使えません。しかし、これらメソッドにより簡潔なスクリプト記述が可能になっています。
解説ドキュメント類
解説ドキュメント exlap.txt をWeb上で閲覧したい方は「exlapの使い方」からどうぞ。
次のものも掲載していますのでよかったら参照して下さい(exlap114.zipに同梱してあります。)。
サンプルスクリプト
各ジャンルごとのサンプルスクリプトも掲載しています。
修正履歴
*ver 1.19 → 1.20の修正点(2016/05/12)
以下、変数xlにはExlapオブジェクト(VBAのApplicationに相当)、wbにはExlwbオブジェクト(VBAのWorkbooks(1)などに相当)が代入されているものとする。
- xl.book_open(*arg) の引数に関する仕様を変更。VBAの Workbooks.Open, Workbooks.Add に与えるのと同じ引数を与えることができるようにした。
xl.book_open("test.xls") とか
xl.book_open('FileName'=>"test.xls", 'PassWord'=>"abc") といった指定のほか、
xl.book_open(XlWBATWorksheet) といった記述もできる。
これは、VBAの Workbooks.Add(xlWBATWorksheet) と同じ。ワークシートが1枚だけのSheet1という名前のワークブックができる(ワークシートの名前ではない)。
xl.book_openの内部処理として、引数にファイル名が指定されている場合、そのファイルが存在しているなら Workbooks.Open を呼び出し、存在していなければ Workbooks.Add を呼び出す。
- wb.close の引数に関する仕様を変更。VBAの Workbook.Close と同じ引数を与えることができる。これまでは引数なしの仕様だった。
wb.close(false): 保存せずに直ちにクローズ。
wb.close(true): 保存してからクローズ。
wb.close(true, "test.xls"): 指定の名前で保存してからクローズ。
なお、この変更に合わせて xl.book_close(wb, *arg) において第2以降の引数を指定できるようにした。
- wb.select_sheet(別名 ss)に引数を与えない場合、VBAの ActiveSheet に相当するオブジェクトを返すようにした。
- wb.insert_sheet, wb.delete_sheet の引数として、ワークシートの番号(1以上の整数値)を与えることができるようにした。
これまでは、ワークシート名、または、ワークシートオブジェクトそのもののみ指定可能だった。
なお、insert_sheet, delete_sheet によってワークシートの番号が変化してしまうので、繰り返してこれらメソッドを呼び出すときは、番号指定の仕方に注意。
より旧いバージョンの修正点については「exlap.rbの修正履歴」を参照して下さい。
旧バージョンのパッケージ
〜 以上 〜
当Webに関連することでアドバイスや問合せなど何かありましたら、以下までメールをお願いします。
t-yoshi#izumi@msb.biglobe.ne.jp
(SPAM対策のため、8文字目に # を入れて記載しています。お手数ですが、上記アドレスから # を除いて送信してください。)
トップページへ