-PR-
hatsuzo

ExcelVBAで作成したマクロでデータ抽出を行なっていたのですが、
数日前に動作していたマクロが、突然に、
「定数式が必要です」というエラーが出てきて動かなくなりました。
VBAの仕様が変わったのでしょうか?

★エラーの発生したモジュール
Option Explicit
Dim MailCc As String
Sub Mailer()
(中略)
MailTo = Cells(RW_TO, 2).Text ' 宛先
→ MailCc = Cells(RW_CC, 2).Text ' CC
(以下略)

★同一プロジェクトの別モジュール
Global Const RW_CC = 18
  • 回答数5
  • 気になる数0
  • Aみんなの回答(全5件)

    質問者が選んだベストアンサー

    • 2007-05-23 19:06:12
    • 回答No.5
    NO.2です
    先程ので解決と思ったのですが・・

    以前、原因不明でマクロが動かなくなったとき以下の方法で
    直ったことがあります。
    試してみてください。

    新規ワークブックを作成
    ワークシートを全選択します(行と列の間の四角いところをクリック)
    ワークシートを新規ワークブックに丸ごとコピーする。
    ワークシートが複数ある時は繰り返し

    モジュール等を全て新ワークブックへコピー
    プロジェクトエクスプローラーでドラッグでも可(たぶん)
    参照設定をあわせる
    ' Microsoft CDO for Windows 2000 Library
    ' Microsoft ActiveX Data Objects 2.7 Library
    ' Microsoft Scripting Runtime
    でどうでしょうか。
    以前私は直ったことがあります。

    ところで、
    ' Microsoft ActiveX Data Objects 2.7 Library

    ' Microsoft ActiveX Data Objects 2.8 Library
    が最新のようですね。
    こちらに変えたらいきなり直ったりして?
    関係ないと思いますが
    お礼コメント
    どうもアドバイス有難うございました。

    ' Microsoft ActiveX Data Objects 2.7 Library を
    ' Microsoft ActiveX Data Objects 2.8 Library
    に変えたら直りました。

    WindowsUpdateの影響かもしれないですね。
    このようなことがあるかと思うと、正直、VBAを定型業務に使ってよいものか迷ってしまいます。

    助かりました。感謝いたします。
    投稿日時 - 2007-05-24 09:18:33
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全4件)

    • 2007-05-23 12:35:15
    • 回答No.2
    → MailCc = Cells(RW_CC, 2).Text ' CC ここでエラーと言う事でしょうか。 だとすれば、 MailCc = Cells(RW_CC, 2).Text の1つ上に Debug.print RW_CC として イミディエトウインドウには 何が出力されますか。 18のはずですが違う数字例えば0など・・ ...続きを読む
    → MailCc = Cells(RW_CC, 2).Text ' CC
    ここでエラーと言う事でしょうか。

    だとすれば、
    MailCc = Cells(RW_CC, 2).Text
    の1つ上に
    Debug.print RW_CC
    として
    イミディエトウインドウには
    何が出力されますか。
    18のはずですが違う数字例えば0など・・
    お礼コメント
    有難うございます。

    コンパイルエラーなので、
    実行できないため、イミディエトウインドウの操作はできません。
    投稿日時 - 2007-05-23 13:43:26
    • ありがとう数0
    • 2007-05-23 14:53:05
    • 回答No.4
    NO2です。 では、参照設定で不足しているものはないですか。 例えば、アドインとか 最近システム変更して、DLLが変わった、削除したとか ...続きを読む
    NO2です。

    では、参照設定で不足しているものはないですか。
    例えば、アドインとか
    最近システム変更して、DLLが変わった、削除したとか
    お礼コメント
    有難うございます。

    参照設定したDLLは一応コメントに記録してあるのですが、
    特に外れているわけではないです。
    ' Microsoft CDO for Windows 2000 Library
    ' Microsoft ActiveX Data Objects 2.7 Library
    ' Microsoft Scripting Runtime
    WindowsUPDATEはしていますが、勝手にDLLまで置き換えられることもあるのでしょうか?
    投稿日時 - 2007-05-23 15:27:23
    • ありがとう数0
    • 2007-05-23 11:45:24
    • 回答No.1
    こんにちは。  >→ MailCc = Cells(RW_CC, 2).Text ' CC   ↑ここにある矢印はどういう意味ですか? では。 ...続きを読む
    こんにちは。

     >→ MailCc = Cells(RW_CC, 2).Text ' CC
      ↑ここにある矢印はどういう意味ですか?

    では。
    お礼コメント
    失礼しました。
    ここでエラー発生という意味です。
    投稿日時 - 2007-05-23 13:39:27
    • ありがとう数0
    • 2007-05-23 13:50:54
    • 回答No.3
    こんにちは、#1です。  エラーの発生した行をコメントにして、#2さんの言われた方法を実行するとどうなりますか。 では。 ...続きを読む
    こんにちは、#1です。

     エラーの発生した行をコメントにして、#2さんの言われた方法を実行するとどうなりますか。

    では。
    お礼コメント
    お返事有難うございます。

    ウォッチ式にRW_CCという定数を追加して、
    そのステップで止めてみましたが、
    「ウォッチ式が不正です」ということで見ることもできません。
    投稿日時 - 2007-05-23 14:25:32
    • ありがとう数0
    • 回答数5
    • 気になる数0
    • ありがとう数6
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ