こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAで、VBProjectへのアクセスのための設定について教えてください。

Excelで、下記のようなマクロを作成し動かしたころ、
「実行時エラー'6068'
 Visual Basic Projectへのプログラム的なアクセスは信頼されません」
というエラーが出てしまいます。
どのように対処すれば動作するようになるのでしょうか。ご教示ください。よろしくお願いいたします。

【環境】
Windows XP & Office2003
【設定など】
Excel:[ツール]-[マクロ]-[セキュリティ]で、
 「Visual Basic プロジェクトへのアクセスを信頼する」にチェック
VBエディタ:[ツール]-[参照設定]で、以下の参照を追加
 Microsoft Visual Basic for Applications Extensibility 5.3
 Microsoft Word 11.0 Object Library
【作ろうとしているマクロ】
(1)マクロを含んだWordファイルを開く
(2)Wordファイルのプロパティや、マクロのプログラムの行数などの値を取得
(3)Excelのシートに取得した値を入力
【作ったマクロ】
Sub test()
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
flname = "(フルパスでのファイル名)"

With objWord
.Visible = False
.Documents.Open Filename:=flname, _
ReadOnly:=True, _
OpenAndRepair:=False

With objWord.Documents
aaa = .Item(1).BuiltinDocumentProperties(1).Value
Worksheets("test").Cells(1, 1).Value = aaa
'ここまでは正常に動作します。
bbb = .Item(1).VBProject.VBComponents(1).CodeModule.CountOfLines 'ここで実行時エラーが出ます。
Worksheets("test").Cells(1, 1).Value = bbb
.Item(1).Close SaveChanges:=wdDoNotSaveChanges
End With

End With

objWord.Quit
Set objWord = Nothing
End Sub

以上です。
どうか、よろしくお願いいたします。

投稿日時 - 2007-07-26 15:06:43

QNo.3201231

すぐに回答ほしいです

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

こんにちは。

>Wordのオブジェクトのセキュリティレベルは、デバッガで見ても最低に下げられているようです。

いいえ、そこではありません。

Word側の
メニューからツール-マクロ-セキュリティ

信頼できる発行元
「Visual Basic プロジェクトへのアクセスを信頼する」にチェック
のほうです。

投稿日時 - 2007-07-27 17:16:23

お礼

ご回答をありがとうございます。
Wendy02さんのご指摘のとおりでした。

Word側にもチェックをして走らせており、同じ実行エラーが出ておりましたので関係無いと思っておりましたが、パソコンを再起動することで正常に動作するようになりました。
デバッグ中にメモリに残されてた、チェックを入れる前のWordのアプリケーションイメージが影響していたのだと思われます。

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

投稿日時 - 2007-07-27 19:49:19

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは。

>(1)マクロを含んだWordファイルを開く
>(2)Wordファイルのプロパティや、マクロのプログラムの行数などの値を取得

Excel側ではなくて、Word側のセキュリティの問題ではありませんか?
少し気になったのは、以下だけで、後は、別に特に問題はないと思います。
ただし、VBComponents(1) ということは、ThisDocument だということでしょうけれども、他は良いのかなって思います。For Each ~ In で、調べるようにしたほうが確実のような気がします。

Worksheets("test").Cells(1, 1).Value = aaa
Worksheets("test").Cells(2, 1).Value = bbb '←Cells(1,1)でなくて、次の行だと思います。

投稿日時 - 2007-07-26 16:04:04

お礼

ご回答を頂き、ありがとうございます。
Wordのオブジェクトのセキュリティレベルは、デバッガで見ても最低に下げられているようです。
もう少し調べてみます。本当にありがとうございました。

投稿日時 - 2007-07-27 15:37:48

あなたにオススメの質問