こんにちは、毛井です。

VBAマクロに関することで、皆様にご相談、といいますか、ご意見を伺わせて
ください。

VBAマクロのコード「ThisWorkbook.〜」が有る場合の動きで困惑したことは
ありませんか?

例えば、以下のVBAを持つEXCElファイルがあるとします。

        Sub Main()
            ThisWorkbook.Worksheets("Sheet3")
        End Sub

このEXCELファイルをCALCで開き、ods形式で保存し、いったんファイルを
閉じます。
ods形式に保存したファイルをcalcで開いて、このVBAマクロを実行すると、
以下のエラーとなります。
        BASICランタイムエラー
        '423'
        Worksheets

モジュール名「ThisWorkbook」が存在し、コード中の「ThisWorkbook」と
衝突することが影響して発生してるようです。

モジュール「ThisWorkbook」を削除すると、元々の期待する動作:Sheet3を
選択します。

このモジュール「ThisWorkbook」は、LibreOfficeがVBAマクロを含むEXCEL
ファイルを読み込むときに、VBAモジュールから自動的に生成しています。

モジュール「ThisWorkbook」があるから、この423エラーが発生する、、、
確かにその通りなのですが。。。

bugzillaに要望として登録しようとしたのですが、そもそもどういう動きを
することが要望として適切なのか、わかりませんでした。

皆様、どう思われるでしょうか?

-- 
Hirono Moi

-- 
Unsubscribe instructions: E-mail to [email protected]
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted

メールによる返信