none
ActiveXを含むシート削除で変数が消える RRS feed

  • 質問

  • 当方、下記現象に行き当たっております。

    ご存知でしたらご教示ください。

    (ExcelはOffiece2013)

     

    VBAマクロでを使用したExcelアプリを開発しており、

    処理ではグローバル変数を使用しております。

     Public hoge As New HogeClass

    この変数に格納した値は、当然ながらExcelを閉じるまで値を参照することが出来ております。

     

    今回発生した問題では、特定の条件でこの変数がクリアされてしまいます。

    実行している処理では、あるシート(以下、Aシート)をコピーして挿入しています。

    ※なお、前回のAシートコピーが残っていたら、それを削除してからコピーを行います。

     

    この一連の処理内でグローバル変数を使用しておりますが、これまでは問題ありません。

    しかし、Aシート上にActiveXボタンを配置したところ、

    Aシートコピーを削除した処理が終わったタイミングだと思いますが、

    次回実行時に、グローバル変数がクリアされてしまっています。

    また、ActiveXボタンの変わりにフォームボタンにしてみたところ

    こちらのケースではこれまでと同様に問題なく、処理の繰り返しでグローバル変数が使用できます。

     

    ActiveXボタンはprivateマクロと一体となりますので、これが影響していると推測しておりますが、

    グローバル変数が消えてしまう、この挙動は正しいものでしょうか?

    ActiveXボタンのまま、グローバル変数が維持されている方法はありますでしょうか?

     

    (補足)

    グローバル変数は標準モジュール側で定義しております。

    シート内の変数ではありません。

     

    よろしくお願いいたします。








    2016年5月18日 2:36