- PR -

VSTOを起動したクラス以外からも操作したい

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2006-02-13 21:42
msoです。

いつもお世話になっております。
また、期待通りの操作をすることが出来ないで悩んでいます。
何が悪いのか教えていただけないでしょうか?

環境
VisualStudio2003(VB.NET)
Office2003

VSTOを使いWordファイルを操作しようとしたところ以下のエラーが発生しました。
内容としてはDLLへアクセスしようとしたときに正しく権限を割り当て当てられていないため、
アクセスすることが出来ないというエラーだということはわかるのですが、どうすればいいのでしょうか?

コード:
型'System.Security.Permission.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'のアクセス許可の要求に失敗しました。



環境を作成する際に、以下の方法で作業を行いました。
1:VS2003から新規でソリューションを作成。
  Microsoft Office System ProjectsからVisual Basicプロジェクトを選択し、
  Wordテンプレートを選択。
2:ソリューションを右クリックし、新規プロジェクトで新しいプロジェクトを作成。
3:新規に作成したプロジェクトには以下のように記述し、同時に以下のCOMオブジェクトを
  参照設定からリンクする。
  ・Microsoft Office 11.0 Object Library
  ・Microsoft Forms 2.0 Object Library
  ・Microsoft Word 11.0 Object Library

コード:
    Public Sub Title(ByRef ThisDocument As Word.Document)
        Try
            MessageBox.Show("aaaaaaa")
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
        End Try
    End Sub


※Importsも記述していますが、Wordテンプレート操作用のClassと同じなので省略します。
4:Word起動時に起動されるクラスには以下のように記述する。
コード:
    Private Sub ThisDocument_New() Handles ThisDocument.New
        Try
            Dim obj As New test.clsTest01
            obj.Title(ThisDocument)
            '先頭に書き出す
            Dim str As String = "New Text" & ControlChars.CrLf 
            Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
            rng.Text = str
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
        End Try
    End Sub


5:作成したTest.dotを起動すると
コード:
型'System.Security.Permission.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'のアクセス許可の要求に失敗しました。


  が表示される。

VSTOについて詳しくは無いのですが、別プロジェクトに分割することが出来ないのでしょうか??
そういう言語仕様であるならば今回の動作については納得できる気がします。
どなたかご存知の方がいらっしゃいましたら、アドバイスお願いします。


'
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-15 22:03
UIPermission については、調べましたか?
DLL へのアクセスではなく、ユーザーインターフェースへのアクセス権限がない、というエラーです。
アセンブリを、どこから起動しようとしていますか?

〆 written by Jitta on 2006/02/15
1

スキルアップ/キャリアアップ(JOB@IT)