谷です。

>> bugzillaに要望として登録しようとしたのですが、そもそもどういう動きを
>> することが要望として適切なのか、わかりませんでした。
> VBASupport が on の場合は ThisWorkbook を予約語として優先する、あるいは
> マクロを含む Excel ファイルを ods にしたときに ThisWorkbook モジュールを
> 作らない、という動作になればいいかなと思います。

モジュールのほうのThisWorkbookにはドキュメントに対するイベント類が記述されている
可能性がありますので、前者かなと思います。

# 前者の修正が簡単なのかどうかよくわかりませんが。
# 安易な修正はエンバグのもとになりそうな話ですしねー。

2012年7月4日 19:39 Takeshi Abe <[email protected]>:
> 毛井さん
>
> 安部です。
> 下記の情報ありがとうございます。
>
> On Tue,  3 Jul 2012 18:24:46 +0900, Hirono Moi <[email protected]> wrote:
>> 例えば、以下のVBAを持つEXCElファイルがあるとします。
>>
>>       Sub Main()
>>           ThisWorkbook.Worksheets("Sheet3")
>>       End Sub
>>
>> このEXCELファイルをCALCで開き、ods形式で保存し、いったんファイルを
>> 閉じます。
>> ods形式に保存したファイルをcalcで開いて、このVBAマクロを実行すると、
>> 以下のエラーとなります。
>>       BASICランタイムエラー
>>       '423'
>>       Worksheets
>>
>> モジュール名「ThisWorkbook」が存在し、コード中の「ThisWorkbook」と
>> 衝突することが影響して発生してるようです。
>>
>> モジュール「ThisWorkbook」を削除すると、元々の期待する動作:Sheet3を
>> 選択します。
> LibreOffice 3.5.4 で試したところ上記の振舞いが再現しました。
> 元の Excel ファイルをそのまま読み込んでマクロを実行するとエラーにならない
> ところもポイントですね。
>
>>
>> このモジュール「ThisWorkbook」は、LibreOfficeがVBAマクロを含むEXCEL
>> ファイルを読み込むときに、VBAモジュールから自動的に生成しています。
>>
>> モジュール「ThisWorkbook」があるから、この423エラーが発生する、、、
>> 確かにその通りなのですが。。。
> 生成される ThisWorkbook モジュールは空っぽでした。
> ThisWorkbook という VBA での特別な属性より、こちらの ThisWorkbook を優先
> しているのが問題のようです。
>
>>
>> bugzillaに要望として登録しようとしたのですが、そもそもどういう動きを
>> することが要望として適切なのか、わかりませんでした。
> VBASupport が on の場合は ThisWorkbook を予約語として優先する、あるいは
> マクロを含む Excel ファイルを ods にしたときに ThisWorkbook モジュールを
> 作らない、という動作になればいいかなと思います。
>
> -- Takeshi Abe
>
>>
>> 皆様、どう思われるでしょうか?
>>
>> --
>> 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
>>
>
> --
> 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
>

-- 
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

メールによる返信