- 締切済み
VBAProjectのモジュール存在チェック
VBAProjectに、「テスト」というモジュール が存在すれば、メッセージ「テストモジュールは 存在しています」 という、処理をエクセルVBAで記述したいです。 上記の処理はVBAで記述することはできるの でしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
Office のバージョンはいくつでしょうか? Excel 2003 および Excel 2007 で Visual Basic プロジェクトへのアクセスをプログラミングにより 許可すると実行時エラーが表示される場合がある http://support.microsoft.com/kb/813969/ja 2002 でもサービスパック3かな?の適用で、VBA Project への アクセスは出来なくなっています。 オプション設定を変更すれば出来るようになりますが VBAからの変更は出来ませんでした。 マクロウィルス対策のためなのであたりまえでしょうけど・・ 質問者さんだけがチェックを行いためだけなら問題ないのでしょうけど 他の人のセキュリティレベルを変更するのはいかがなものかと。 以前の回答ですがこれとOffice Tanaka さんのを調整すれば出来るかな? http://okwave.jp/qa/q2702088.html
- imogasi
- ベストアンサー率27% (4737/17069)
私の場合「変更」と言うモジュール名があります。これでテストした例。 Sub test01() Dim vb0 fnd = "n" For Each vbo In ActiveWorkbook.VBProject.VBComponents If (vbo.Type = 1 Or vbo.Type = 2) And vbo.Name <> "VBE" Then i = i + 1 MsgBox "モジュール名(" & i & ") = " & vbo.Name If vbo.Name = "変更" Then fnd = "y" End If End If Next If fnd = "y" Then MsgBox "module名=変更は あり" Else MsgBox "module名=変更は ない" End If End Sub ーー http://officetanaka.net/excel/vba/vbe/04.htm からすれば Or vbo.Type = 2の部分は不要かも。 1 標準モジュール 2 クラス モジュール
- kmetu
- ベストアンサー率41% (562/1346)
Office TANAKA CodeModuleのプロパティ http://officetanaka.net/excel/vba/vbe/05.htm 上記のページの最後にある すべてのプロシージャ名を取得する例 のところを参考にしてみてください