Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/preload/Primary/SystemModuleInstall.class.php on line 117

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/preload/Primary/SystemModuleInstall.class.php on line 168

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/preload/Primary/SystemModuleInstall.class.php on line 186

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/preload/Primary/SiteClose.class.php on line 54

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/user/preload/Primary/Primary.class.php on line 69

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/user/preload/Primary/Primary.class.php on line 74

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/include/functions.php on line 108

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/include/functions.php on line 558

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/include/functions.php on line 562

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/include/functions.php on line 633

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/object.php on line 640

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/token.php on line 200

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/token.php on line 294

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/token.php on line 321

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/token.php on line 371

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/module.textsanitizer.php on line 82

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/module.textsanitizer.php on line 85

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/kernel/handler.php on line 37

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/kernel/handler.php on line 48

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/kernel/handler.php on line 115

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/modules/legacy/kernel/handler.php on line 338

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/class/database/databasefactory.php on line 59

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/config.php on line 94

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/config.php on line 95

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configoption.php on line 123

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configoption.php on line 146

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configoption.php on line 232

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configitem.php on line 308

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configitem.php on line 331

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/configitem.php on line 417

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/module.php on line 360

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/module.php on line 386

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/module.php on line 418

Deprecated: Assigning the return value of new by reference is deprecated in /home/33/tmr4032/public/3.0/kernel/module.php on line 579
OpenOffice.org ユーザーのための Microsoft Office 互換性研究室 - マクロの互換性が一歩前進
お勧め書籍
記事のリクエスト−投票受付中
アクセスカウンタ
945699

0106 :昨日
0053 :今日
トップ  >  OpenOffice.org 3.0 の新機能  >  マクロの互換性が一歩前進
まだ‘テスト段階’といったレベルですが、Excelのマクロをそのまま実行できるようになっています。この機能を試してみましょう。

Excelで画面01のようなマクロを作成してみました。選択範囲のセルを結合し、また結合したセルを解除するマクロです。

画面01
(クリックで拡大)



このマクロを含むExcelファイルをそのままCalcで開くと、IDE(OpenOffice.orgの統合開発環境)のBasicエディタには、Rem文に変換したコードが表示されます。


画面02
※Linux版のOpenOffice.orgです
(Ubuntu8.04)



Calcの中でExcelのマクロを動かすには、コメント文に変換されているコードを一つ一つ手作業で移植していく必要がありました。たとえばこのマクロの場合なら、Excelに独特のRangeオブジェクトを扱っていますので、このままRemキーワードを削除しても実行することはできません(実行時エラーとなります)。

では、新搭載の「VBAサポート」機能を使ってみましょう。
「ツール」−「オプション」コマンドの「読み込みと保存」−「VBA属性」ダイアログで「Microsoft Excel 97/2000/XP」グループにある「実行可能コード」チェックボックスをオンにします(初期設定はオフです)。

画面03



この状態でマクロを含むExcelファイルを開いてみましょう。Basicエディタ画面を見ると、「Option VBASupport 1」というステートメントがセットされ、VBAのコードがそのまま表示されています。

画面04
(クリックで拡大)



ここで挙げたサンプルコードを実際に試してみたところ、そのまま実行できました。ここでは選択範囲のセルの結合と解除を、RangeオブジェクトのMergeメッソドを使う方法と、MergeCellsプロパティを切り替える方法の、2つのやり方で切り替えています(片方はコメントアウトしてあります)。そのどちらも、問題なく実行できました。

(松井のコメント)
もちろん、これで「マクロの互換性が達成された」というのは早計でしょう。しかし、「セルをクリア」とか「セル範囲をコピー」「形式を選択して貼り付け」(Pastspecialメソッド)、「ワークシートの追加」「ワークシートの削除」というような基本的な処理をためしてみたところ、ほとんどのものがOKでした。基本的なマクロなら、かなりの範囲のものが機能するようです。



−−−−−
下のボタンをクリックしてもらえると、筆者の励みになります。よろしくお願いします。

プリンタ用画面
投票数:1494 平均点:7.41
前
SUMIF関数の互換性が高まった
カテゴリートップ
OpenOffice.org 3.0 の新機能
次
ソルバー機能を比較する(その1)
(c) 2003-2008 Mikihiko Matsui All Rights Reserved.
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Theme Desinged by OCEAN-NET