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

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

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

A 回答 (2件)

こんにちは。



>(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)でなくて、次の行だと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/27 15:37

こんにちは。



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

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

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

信頼できる発行元
「Visual Basic プロジェクトへのアクセスを信頼する」にチェック
のほうです。
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2007/07/27 19:49

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