ユーザー会ML[9443]で、可知さんが書いていた「VBA対応OpenOffice.org」を試してみました。
使用したのは、Ubuntu 6.06 LTS (Dapper Drake)に含まれているOpenOffice.orgです。
http://www.ubuntu.com/
Rangeオブジェクトを取得するさまざまなサンプルを10個ほど試してみました。
結果は次の通りです。
動作したもの……7個
結果が違ったもの……2個
エラーとなったもの……1個
エラーとなったものは「SpecialCellsプロパティで最後のセルを取得するもの」です。
結果が違った(セル範囲を取得できなかった)ものは、「SelectionプロパティでRangeオブジェクトであるかどうかの切り分けをするもの」「InputBoxでセル範囲を指定するもの」です。

動作したのは「ActiveCellプロパティでRangeオブジェクトを取得するもの」「WorkSheetオブジェクトのUsedRangeプロパティを使ったもの」「CurrentRegionプロパティで空白行と空白列に囲まれた範囲を取得するもの」「Resizeプロパティで行列のサイズを変更するもの」「Offsetプロパティで相対的に行列を移動するもの」「ResizeプロパティとOffsetプロパティを組み合わせたもの」「Cellsプロパティを使って右下隅のセルを取得するもの」です。

上記のように、可能性はかなり高いように感じました。



VBAやってます。
ActiveSheet.Range("C5").Activate
ってできませんよね。
SelectとActivateの区別
意外と難しいようです。
コメント by maho — 2006/7/2 日曜日 @ 7:50:12
おお、mahoさん、コメントありがとうございます。
私の乏しい知識ですが、Excelでは単一オブジェクトを選択するときはSelectとActivateのどちらを使っても同じ結果となるようです。
Rangeプロパティでも、単一セルの選択ならActivateメソッドが使用できます。したがって、ご指摘のステートメントもExcelでは問題なくOKですよ。(なんか話がかみ合ってない?)
コメント by 松井幹彦 — 2006/7/2 日曜日 @ 9:53:45