
現在、エクセル2003で作成したVBAがエクセル2007だと、マクロを有効にして起動させようとするとコンパイルエラーとなって動作しない現象が起きていて困っています。
どなたか、解決方法をご教授頂けないでしょうか?
・VBAを含んだファイルを開いて、マクロを有効にすると
”コンパイルエラー:変数が定義されていません” というエラーボックスが出てきてプログラムの矢印のポイントがPrivate Sub User Form_Initialize() のところを指したまま止まってしまう。
・このVBAはエクセルの表の書かれたデータをRS-232Cで出力するようなプログラムが使われていて、MSCommというものが使われています。この関連のプログラムが2003と2007では互換がないということはありますでしょうか?
どうぞ、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
きちんと作成してあればほとんどそのまま実行できます。
そのようにエラーが出たらそれを修正してアップデートしていきます。
ご質問の場合は、そのエラーメッセージの通りなのでしょう。
個人的には、面倒でもかならず宣言しておいたほうがいいと思います。
・宣言していなくてエラーになる変数のところで色が反転して停止していると思いますので、宣言してください。
( または
・ツール → オプション → 編集タブ「変数の宣言を強制する」のチェックをはずす。)
回答頂きありがとうございます。
エラーにナル変数のところで色が反転する箇所というのが、
Private Sub UserForm_Initialize()
この中の
OPFlag = 10
If MSComm1.PortOpen = False Then
Call PortOpenCD
End If
この”MSComm1”というところが反転します。
また、
・ツール → オプション → 編集タブ「変数の宣言を強制する」のチェックをはずす。)
この部分ではチェックは外している状態です。
このMSComm1というのはどのように宣言したら良いのでしょうか?
No.4
- 回答日時:
ANo.3です、
> 詳細なご指導頂きありがとうございます。いろいろと申し訳ないのですが、私がかなり素人なもので、このレジストリというのを修正する方法をあまり知らないのですが、やり方とか、何かレジストリの修正ツールとか教えて頂けませんでしょうか。
[スタート]→[ファイル名を指定して実行]と選択して出てくる画面に regedit と入力してください。
レジストリエディタが開きます。
なお、レジストリは変なところを変更すると、アプリケーションやOSの動作に不都合が出る可能性があります。
注意して操作してください。
回答頂きありがとうございます。
regeditで
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}
の、Compatibility Flagsの値を400 → 0に変更。
このように変更してみたのですが、やはり、マクロを有効にすると
コンパイルエラー:
変数が定義されていません。
とでて、
Private Sub UserForm_Initialize()で停止して
”MSComm1”が反転表示されている状態になる現象に変化がありません。
No.3
- 回答日時:
Excel2007の場合、そのままではMSCOMMをUserFormに貼り付けられないので、その辺りに原因がありそう。
以下のレジストリをいじってみて下さい。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{648A5600-2C6E-101B-82B6-000000000014}
の、Compatibility Flagsの値を400 → 0に変更。
回答頂きありがとうございます。
詳細なご指導頂きありがとうございます。いろいろと申し訳ないのですが、私がかなり素人なもので、このレジストリというのを修正する方法をあまり知らないのですが、やり方とか、何かレジストリの修正ツールとか教えて頂けませんでしょうか。
どうぞ、よろしくお願い致します。
No.2
- 回答日時:
そのPCには、MSCOMMがインストールされているのでしょうか?
通常、WindowsにはMSCOMMは含まれていません。
MSCOMMをインストールするには、VB6でMSCOMMを使用したプログラムのSetupを作成して、Setupでインストールする必要があります。
※あるいは、そのPCにVisual Studio 6.0 をインストールする。
回答頂きありがとうございます。
このMSCOMMについて何ですが、このように対処したつもりなのですが、問題かないか教えてもらえないでしょうか。
まず、エクセルのメニューバーから”開発”--->”Visual Basic”と進み、
Visual Basicのウィンドウが開いたら、メニューバーから”ツール”--->”参照設定”で参照設定のwindowで”参照”のコマンドボタンを押しました。
そして、\C\Windows\System32のフォルダ内にMscomm32.ocxファイルをさがしたのですが、このファイルがないため、このファイルを別のPCからもらって、同じフォルダ内にコピーペーストしました。
そしてこれを選択しました。
これで、”参照可能なライブラリファイル ファイル”の一覧の”Microsoft Comm Control 6.0”の行にチェックマークが付きました。
このようなやり方でMSCOMM(RS-232C関連のプログラム)をインクルードできたと思うのですが、やり方が間違っていますでしょうか?
なお、この設定をしてもプログラムを実行しようとすると、”コンパイルエラー:変数が定義されていません”と出てきてストップしてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Windows 10 パソコンのプログラムを自動で起動させる方法 5 2023/03/16 00:08
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでArrayListを使う為の「msc...
-
次のクラスは登録されていませ...
-
[VB.net] ExcelへのQRコード出...
-
ランタイムパッケージ
-
発行元:不明???
-
VC++ msvcrt.dllについて
-
VB6professional edition は Wi...
-
ListViewで文字化けしてしまい...
-
会社でのウイルスバスターのイ...
-
VB.NETでSPREADの設定方法
-
VB6.0で作成したexeファイルが...
-
エクセル2003で作ったVBAが2007...
-
DirectXを使った動画再生プログ...
-
VBの文字化け
-
PCからPCへの移行
-
OLEPRO32.DLLが見つかりません
-
VB6(SP5)+OO4OでCreateObjectが...
-
データベースプログラムで発生...
-
ランタイムのローカル使用
-
VB6(SP5)のインストーラ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでArrayListを使う為の「msc...
-
VB.NETでSPREADの設定方法
-
Product Codeの変更法は?
-
VB6(SP5)+OO4OでCreateObjectが...
-
う~ん…。
-
VB6で作成したアプリを配布する...
-
VB.NET(2017)で インストーラを...
-
VB6.0で作成したexeファイルが...
-
[VB.net] ExcelへのQRコード出...
-
Excelがインストールされてない...
-
.NETの標準ライブラリでExcelフ...
-
発行元:不明???
-
VB6のアプリケーションの配布
-
VB6(SP5)とSTARFAXのOCX
-
ExcelCreatorについて
-
VC++ msvcrt.dllについて
-
ビルドした.exeファイルは.NE...
-
VB2013で作成したプログラムの...
-
accessがインストールされてい...
-
ListViewで文字化けしてしまい...
おすすめ情報