2006/6/3 土曜日

VBAマクロが動くOpenOffice.orgをテストする

ユーザー会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プロパティを使って右下隅のセルを取得するもの」です。

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

コメント (2) »

  1. VBAやってます。
    ActiveSheet.Range("C5").Activate
    ってできませんよね。
    SelectとActivateの区別
    意外と難しいようです。

    コメント by maho — 2006/7/2 日曜日 @ 7:50:12

  2. おお、mahoさん、コメントありがとうございます。
    私の乏しい知識ですが、Excelでは単一オブジェクトを選択するときはSelectとActivateのどちらを使っても同じ結果となるようです。
    Rangeプロパティでも、単一セルの選択ならActivateメソッドが使用できます。したがって、ご指摘のステートメントもExcelでは問題なくOKですよ。(なんか話がかみ合ってない?)

    コメント by 松井幹彦 — 2006/7/2 日曜日 @ 9:53:45

コメント RSS

コメントをどうぞ

XHTML ( You can use these tags): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .