アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
が最新のようですね。
こちらに変えたらいきなり直ったりして?
関係ないと思いますが
    • good
    • 0
この回答へのお礼

どうもアドバイス有難うございました。

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

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

助かりました。感謝いたします。

お礼日時:2007/05/24 09:18

NO2です。



では、参照設定で不足しているものはないですか。
例えば、アドインとか
最近システム変更して、DLLが変わった、削除したとか
    • good
    • 0
この回答へのお礼

有難うございます。

参照設定したDLLは一応コメントに記録してあるのですが、
特に外れているわけではないです。
' Microsoft CDO for Windows 2000 Library
' Microsoft ActiveX Data Objects 2.7 Library
' Microsoft Scripting Runtime
WindowsUPDATEはしていますが、勝手にDLLまで置き換えられることもあるのでしょうか?

お礼日時:2007/05/23 15:27

こんにちは、#1です。



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

では。
    • good
    • 0
この回答へのお礼

お返事有難うございます。

ウォッチ式にRW_CCという定数を追加して、
そのステップで止めてみましたが、
「ウォッチ式が不正です」ということで見ることもできません。

お礼日時:2007/05/23 14:25

→ MailCc = Cells(RW_CC, 2).Text ' CC


ここでエラーと言う事でしょうか。

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

有難うございます。

コンパイルエラーなので、
実行できないため、イミディエトウインドウの操作はできません。

お礼日時:2007/05/23 13:43

こんにちは。



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

では。
    • good
    • 0
この回答へのお礼

失礼しました。
ここでエラー発生という意味です。

お礼日時:2007/05/23 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!