locked
EXCEL2007でマクロが動きません。 RRS feed

  • 質問

  • EXCEL2010のマシンででマクロを書き、XLSM形式で保存しました。EXCEL2013のマシンでは動作しましたが(ただし、MSforms.exdはリネームしました。)、他にEXCEL2007のマシンがあって、同じブックを開いたところ、マクロを有効にしてもコマンドボタンは押せるのですがマクロが走りません。MSforms.exdをリネームしたりしましたが結果は同じです。コマンドボタンが押せずにマクロが動かないという現象とは違い、マウスのポインタはコマンドボタン上では矢印になりボタンは押せます。他にマクロが動かいないといった質問をいろいろと探しましたが、同じ内容の質問が見当たらず、対処法がわかりません。どなたか解決方法をご存知の方、いらっしゃいますでしょうか?

    2015年2月6日 10:33

回答

  • 返信いただき本当にありがとうございます。

    msforms.exdの削除(リネーム)は、実は試し済みで、うまく行かなかったのです。
    別の方のアドバイスも試してみたのですが、結局、次の方法で問題を解消できました。

    最初のマクロは、シートに貼りつけたボタンのイベントプロシージャ、Private Sub xx_Click()のところにコードを書いたのですが、
    変数の定義が標準モジュールの中に記述していたので、標準モジュールの中で、Sub xx_Click()として書き直したら、マクロを走らせることができました。

    変数の定義をPrivate Subプロシージャの中で行っていれば、ちゃんと動いたのかもしれません。
    いずれ検証してみようかと思いますが、何せ自己流でやっているものですから、とりあえず動くようになってやれやれです。

    同じマクロであっても動いたり動かなかったり、奥が深いと感じました。これに懲りずにまた挑戦してみます。

    ありがとうございました。

    • 回答としてマーク 佐伯玲 2015年2月17日 0:35
    2015年2月12日 10:46
  • 返信が遅くなり申し訳ありませんでした。
    質問をしたのも初めてのことで、返信いただき本当にありがとうございます。

    ブレークポイントの件は試しましたが、デバッガーは起動しませんでした。

    テスト用のブックを作っているうち、シート上に作ったボタンにイベントプロシージャのコードを作ることができず、
    先に返信いただいた方にも書きましたが、試行錯誤の中で偶然ですが次の方法で問題が解消できました。

    最初のマクロは、シートに貼りつけたボタンのイベントプロシージャ、Privete Sub xx_Click()のところにコードを書いたのですが、変数の定義が標準モジュールの中に記述していたので、標準モジュールの中で、Sub xx_Click()として書き直したら、マクロを走らせることができました。

    変数の定義をPrivate Subプロシージャの中で行っていれば、ちゃんと動いたのかもしれません。
    いずれ検証してみようかと思いますが、何せ自己流でやっているものですから、とりあえず動くようになってやれやれです。

    うまく説明できていないかもしれませんが、アドバイスいただきありがとうございました。
    • 回答としてマーク 佐伯玲 2015年2月17日 0:35
    2015年2月12日 10:50

すべての返信

  • msforms.exd の影響ではないでしょうか?マクロでよくあるのが、こちらのファイルが影響して一部の動作に影響がある可能性があります。

    msforms.exd の削除をお試しください。

    http://excelmatters.com/2014/12/10/office-update-breaks-activex-controls/

    2015年2月7日 3:10
  • 揚げ足取りで難ですが、リネームしたと記載があるので削除と同等効果ではないでしょうか。

    -----

    問題の起こる環境でそのボタンのイベントにブレークポイントを貼ってボタンを押すと、ちゃんとデバッグできる状態なのでしょうか?

    2015年2月7日 3:28
  • 返信いただき本当にありがとうございます。

    msforms.exdの削除(リネーム)は、実は試し済みで、うまく行かなかったのです。
    別の方のアドバイスも試してみたのですが、結局、次の方法で問題を解消できました。

    最初のマクロは、シートに貼りつけたボタンのイベントプロシージャ、Private Sub xx_Click()のところにコードを書いたのですが、
    変数の定義が標準モジュールの中に記述していたので、標準モジュールの中で、Sub xx_Click()として書き直したら、マクロを走らせることができました。

    変数の定義をPrivate Subプロシージャの中で行っていれば、ちゃんと動いたのかもしれません。
    いずれ検証してみようかと思いますが、何せ自己流でやっているものですから、とりあえず動くようになってやれやれです。

    同じマクロであっても動いたり動かなかったり、奥が深いと感じました。これに懲りずにまた挑戦してみます。

    ありがとうございました。

    • 回答としてマーク 佐伯玲 2015年2月17日 0:35
    2015年2月12日 10:46
  • 返信が遅くなり申し訳ありませんでした。
    質問をしたのも初めてのことで、返信いただき本当にありがとうございます。

    ブレークポイントの件は試しましたが、デバッガーは起動しませんでした。

    テスト用のブックを作っているうち、シート上に作ったボタンにイベントプロシージャのコードを作ることができず、
    先に返信いただいた方にも書きましたが、試行錯誤の中で偶然ですが次の方法で問題が解消できました。

    最初のマクロは、シートに貼りつけたボタンのイベントプロシージャ、Privete Sub xx_Click()のところにコードを書いたのですが、変数の定義が標準モジュールの中に記述していたので、標準モジュールの中で、Sub xx_Click()として書き直したら、マクロを走らせることができました。

    変数の定義をPrivate Subプロシージャの中で行っていれば、ちゃんと動いたのかもしれません。
    いずれ検証してみようかと思いますが、何せ自己流でやっているものですから、とりあえず動くようになってやれやれです。

    うまく説明できていないかもしれませんが、アドバイスいただきありがとうございました。
    • 回答としてマーク 佐伯玲 2015年2月17日 0:35
    2015年2月12日 10:50