質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

5661閲覧

VB.NETとIllustratorの連携でエラーとなる

zai

総合スコア12

Illustrator

Illustratorは、アドビシステムズ(株)が開発した描画ツールソフトです。 イラスト製作やロゴタイプ、広告作成時などのデザインツールとして、さまざまな分野のクリエーターに愛用されています。 プラグインの中にCADや3DCG機能の拡張ができるものがあります。 特に広告作成などの印刷業界では、トップクラスのシェアを誇っているソフトです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2016/10/18 08:08

編集2016/10/19 00:27

###前提・実現したいこと
VB.NETアプリケーションからIllustratorを起動し、Illustratorへ図を出力する仕組みを使っていて、そのアプリケーションをWindows10版にすることになりました。
もともと、WindowsXPとIllustratorCSで動作していたもので、
作成者も退職しておりません。
Windows7で動作することは確認しました。

Windows10のPCが複数台あり、それぞれIllustratorをインストールしています。
Windows10は、32bitと64bit
Illustratorは、CS3、CS4、CS6、CCとあり、
それぞれ対応するCOMを参照してアプリケーションを作成しています。

開発用のWindowsPCでは正常にIllustratorが起動し、図が出力できるのですが、本番用のWindowsPCではIllustratorは起動しますが、図の出力でエラーとなります。

解決策、参考情報等、ご存知でしたら教えて頂けないでしょうか?

###発生している問題・エラーメッセージ
下記は、Windows10 32bit と IllustratorCS4の場合に表示されたエラーです。

型 'Illustrator.ApplicationClass' の COM オブジェクトをインターフェイス型
'Illustrator._Application' にキャストできません。
IID '{95CD20AA-AD72-11D3-B086-0010A4F5C335}' が指定された
インターフェイスの COM コンポーネント上での QueryInterface 呼び出しの
ときに次のエラーが発生したため、この操作に失敗しました:
インターフェイスがサポートされていません
(HRESULT からの例外: 0x80004002 (E_NOINTERFACE))。

下記ソースコードのExecのtry-catchでエラーとなっていると思われます。
catchのイラストレータの初期化に失敗しましたのメッセージが
アプリ上に上記のエラーメッセージとともに表示されています。

###該当のソースコード

Private Sub Exec() Dim lblDlg As New SetLabelDelegate(AddressOf setLabel) Dim stsDlg As New SetStatusDelegate(AddressOf setStatus) 'Dim clsDlg As New CloseFrmDelegate(AddressOf closeFrm) Dim btnDlg As New SetBtnDelegate(AddressOf setBtn) Dim tagDlg As New GetLabelTagDelegate(AddressOf getLabelTag) Dim tag As String = "" Dim hdDlg As New HideProgressDelegate(AddressOf hideProgress) Dim actDlg As New ActivateFormDelegate(AddressOf activateForm) Dim before As DateTime = DateTime.Now '処理前 画面処理 Invoke(lblDlg, New Object() {"Adobe Illustrator 起動チェック!"}) Call startIllustrator() 'illustrator初期化 Try 'イラストレータ準備中 Invoke(lblDlg, New Object() {"イラストレータ準備中"}) 'インスタンス化 IllFunc = New IllustrationFunction '画面アクティブ Invoke(actDlg) Catch ex As Exception Invoke(stsDlg, New Object() {"イラストレーターの初期化に失敗しました", ex.Message, True, False}) Invoke(btnDlg, New Object() {"終了", True}) Exit Sub End Try '...省略 End Sub 'Illustrator起動 Private Sub startIllustrator() 'ローカルコンピュータ上で実行されている"Illustrator"という名前の 'すべてのプロセスを取得 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcessesByName("Illustrator") If ps.Length = 0 Then Call System.Diagnostics.Process.Start("Illustrator") Debug.Print("Process.Start" & DateTime.Now) wait(1000) End If End Sub 'Illustrator用クラス Public Class IllustrationFunction : Implements System.IDisposable 'Illustratorオブジェクト群 Private aiApp As Illustrator.Application 'アプリケーション Private aiDoc As Illustrator.Document 'ドキュメント Private aiTemplateDoc As Illustrator.Document 'ドキュメント(テンプレートファイル) Private aiFonts As Illustrator.TextFonts 'フォント群 '色オブジェクト(固定値) Private CMYKWhite As Illustrator.CMYKColor 'CMYKカラーオブジェクト Private CMYKBlack As Illustrator.CMYKColor 'CMYKカラーオブジェクト '現在選択中のオブジェクト群 Private thisLayer As Illustrator.Layer 'レイヤー Private thisText As Illustrator.TextFrame 'テキストフレーム Private thisPath As Illustrator.PathItem 'パス Private thisGroup As Illustrator.GroupItem 'グループ Private tempLayer As Illustrator.Layer 'レイヤー(一時) Private _lastStep As String 'エラー検知用ステップログ Const MM2PT As Double = 2.83464567 'ミリメートルをポイントに変更する際の掛け率 Const PT2MM As Double = 0.352777778 'ポイントをミリメートルに変更する際の掛け率 Private disposed As Boolean ' Track whether Dispose has been called. Private handle As IntPtr ' Pointer to an external unmanaged resource. ''' <summary> ''' Illustratorのオブジェクトを取得する。 ''' </summary> ''' <remarks>使用法:インスタンス化</remarks> Public Sub New() 'Dispose時使用 Me.handle = handle 'コトハジメのアプリケーションオブジェクトとフォントオブジェクトを取得 aiApp = New Illustrator.Application() aiFonts = aiApp.TextFonts '色オブジェクトを設定 CMYKWhite = New Illustrator.CMYKColor() CMYKBlack = New Illustrator.CMYKColor() CMYKWhite.Cyan = 0 CMYKWhite.Magenta = 0 CMYKWhite.Yellow = 0 CMYKWhite.Black = 0 CMYKBlack.Cyan = 0 CMYKBlack.Magenta = 0 CMYKBlack.Yellow = 0 CMYKBlack.Black = 100 End Sub '...省略 End Class

###試したこと
エラーの{95CD20AA-AD72-11D3-B086-0010A4F5C335}をGoogleで検索するとIllustratorCS5関連の情報が表示されたため、PCのインストール状況を確認しましたが、IllustratorCS5はインストールされておらず、IllustratorCS4がインストールされていました。
また、他のIllustratorのversionはインストールされていません。

###補足情報(言語/FW/ツール等のバージョンなど)
開発用のWindows10のPCと本番用のWindows10のPCで、どこかに違いがあるのではないかと考え、調査しているところです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

本番用PCにて、下記手順でエラーが解消されました。
0. IllustratorCS4アンインストール
0. PC再起動
0. IllustratorCS4インストール
0. 不足フォントインストール

CCも同様でした。

CS3、CS6についても同様に確認する予定です。

投稿2016/10/20 08:48

zai

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zai

2016/10/27 01:05

CS3、CS6も同様の手順で解消したため自己解決とします。
guest

0

ソースがないので質問とエラーの内容から予測ですが、IllustratorCS4の時にIllustratorCS4のCOMを参照しているつもりが、IllustratorCS5のCOMを参照しているのではないでしょうか。

投稿2016/10/18 16:44

crowmt

総合スコア402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zai

2016/10/19 00:31

アドバイスありがとうございます。 ソースを追記しました。 同じプログラムで、開発用のWindows10だとIllustratorCS4が起動し、図の出力も問題なくできており、同じものを本番用にコピーして使おうとするとIllustratorCS4は起動しますが、図の出力でエラーとなっています。 また、CS4のときにCOMをCS6を使うようにするとCS4が起動すらしません。 本番用と開発用のPCの設定等で違いがないか調査しているところです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問