rubyでexcel操作するとしたら、今までは
VBA より便利で手軽 Excel 操作スクリプト言語「Ruby」へのお誘い (前編)
Win32OLE 活用法 【第 2 回】 Excel
を参考にしていた。
さすがに手間なので、書き込み限定で、
Ruby1.9でWriteExcelを試してみた。
りもしたけれども、
WriteExcel
や
spreadsheet
みたいなライブラリは、
Excelで使える機能の代替が無いか散々調べたあげく、
結局、細かい設定やExcel依存の機能をwin32ole経由で処理することが多いわけで。
ちょっと凝ったことをやりたければ、イチからwin32ole経由でExcel操作するスクリプトを書いた方が早い。
とはいえ、vba/vbscriptで培ったwin32ole操作スキルなんて普段使わないと忘れるので、
いつも思い出すところからスタートするのも苦痛。
Excel操作の必要があるたびに、Excel互換ライブラリを探して、無ければvba/vbscriptの復習。
vba/vbscriptを捨てるためにrubyに移行しているのに、復習からスタートする必要があるのは、いつも釈然としなかった。
Excelの読み書きをしたいんであって、vba/vbscriptの復習をしたいわけじゃないんだけど、、
っと思いつつ、久々に「ruby excel」でググったところ、
上位で見つけたExcel用のモジュールがとても便利だった。
Ruby: Win32OLEでの Excelの操作
これぐらい小さいモジュールであれば見ればすぐ思い出せるし、拡張や応用も楽。
(いい意味でvba/vbscriptよりも使いやすい)独自文法で、
(vba/vbscriptよりは落ちるけど比較的)多機能な
凝ったExcel互換ライブラリを無理に探す必要はないなぁ…っと、
目から鱗が落ちる思いでした。
以下、参考資料。
Ruby による Win32OLE プログラミング
2013年6月13日木曜日
2013年3月7日木曜日
RubyでOffice2007/2010のExcel/Word/PowerPoint/VisioファイルをPDF変換する際の注意点
- PDF/XPSドキュメントの作成について Office2010から標準でPDF/XPS ドキュメントを作成する機能が組み込まれている。
- ExportAsFixedFormatメソッドのパラメータについて Document.ExportAsFixedFormat Method (Word)
- rubyスクリプトでPDFに変換する方法について 以下の記事が参考になった。
※Office2007では、2007 Microsoft Office プログラム用 Microsoft PDF/XPS 保存アドインをインストール必要がある。
基本的には、指定した形式のファイルにエクスポート(ExportAsFixedFormatメソッド)を使用すればいい。
Workbook.ExportAsFixedFormat メソッド (Excel)
Presentation.ExportAsFixedFormat Method (PowerPoint)
Document.ExportAsFixedFormat Method (Visio)
出力先のパスを指定するキーワード名レベルで、各Officeドキュメントで指定方法が変わるので注意が必要。微妙な相違で落ちるため、コピペ対応をしようとして少しはまった。。
例:Word…「OutputFileName」、Excel…「Filename」、PowerPoint…「Path」、Visio…「OutputFileName」
個人的には、必須/任意オプションをオンラインドキュメントで確認しつつ、vbaの「マクロの記録」や「オブジェクトブラウザー」でコード値を調査し、試行錯誤していくのがやりやすかった。
Office2010だと、開発タブが無いため、Office 2010 のリボンに「開発」を表示させたいを参考にして、「マクロ」や「Visual Basic」エディタから「オブジェクトブラウザー」を使用する。
Word,Excel,PowerPointをPDFに一括変換
WordファイルやExcelファイルを一括でPDFに変換するRubyスクリプト
プリンタドライバへの印刷と違い、ファイル名を指定して保存とほぼ同等な処理のため、PDF変換速度が速いのにびびった。
なお、PowerPointだと、「ExportAsFixedFormat」が落ちるため、「SaveAs」メソッドで回避する必要がある。これではまった。。
登録:
投稿 (Atom)