- PR -

vb2005からのエクセル呼出がうまくいかない

1
投稿者投稿内容
ざい
会議室デビュー日: 2007/02/01
投稿数: 4
投稿日時: 2007-02-01 09:50
VB2005でビルド発行後、Windows XPのPCにインストールを実施。
その後、プログラムを実行し、エクセル書き込み処理ボタンを押したところ
以下のメッセージが表示されました。
どなたか教えてください。
ちなみに、他のXPのPCでプログラムを実行したところ、以下のメッセージは
でませんでした。
EXCELは2000です。

<メッセージ>
型Excel.ApplicationClassのCOMオブジェクトを
インターフェイス型 Excel Applicationにキャスト
できません。IID{000208D5-0000-0000-C000-000000000046}
が指定したインターフェイスのコンポーネント上での
Queryinterface呼出のときに次のエラーが発生したため、
この操作に失敗しました。ライブラリは登録されていません。
(HRESULTからの例外0x8002801D TYPE_E_LIBNOTREGISTERED)

VB内のエクセル書き込みコードはこんな感じです。
       Dim strHHMMSS As String
Dim strHH As String

strHHMMSS = Format(Date.Now, "yyyyMMddHHmmss")
strHH = "C:\DATA\saisyoriaa" & strHHMMSS & ".xls"
      Dim ExcelApp As New Excel.Application 'エクセルを宣言する
Dim Book As Excel.Workbook 'ワークブックの宣言
Const xlCenter = -4108 '中央揃え

Book = ExcelApp.Workbooks.Add '新しいワークブックを追加

Book.Worksheets(1).Columns("B:B").HorizontalAlignment = xlCenter
Book.Worksheets(1).Columns("C:C").HorizontalAlignment = xlCenter
Book.Worksheets(1).Columns("D:D").HorizontalAlignment = xlCenter

Book.Worksheets(1).Columns("A:A").ColumnWidth = 31.5
Book.Worksheets(1).Columns("B:B").ColumnWidth = 15
Book.Worksheets(1).Columns("C:C").ColumnWidth = 20
Book.Worksheets(1).Columns("D:D").ColumnWidth = 15
Book.Worksheets(1).Range("B7") = TextBox127.Text
Book.Worksheets(1).Range("C7") = TextBox128.Text
Book.Worksheets(1).Range("D7") = TextBox129.Text
Book.SaveAs(strHH)
Book.Close()
ExcelApp.Quit()
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-01 10:28
引用:

ざいさんの書き込み (2007-02-01 09:50) より:

ちなみに、他のXPのPCでプログラムを実行したところ、以下のメッセージはでませんでした。
EXCELは2000です。


"EXCEL は 2000 です" というのは、導入した端末のことでしょうか?
どの端末なのかがわからないのですが。

引用:

型Excel.ApplicationClassのCOMオブジェクトを
インターフェイス型 Excel Applicationにキャスト
できません。IID{000208D5-0000-0000-C000-000000000046}
が指定したインターフェイスのコンポーネント上での
Queryinterface呼出のときに次のエラーが発生したため、
この操作に失敗しました。ライブラリは登録されていません。
(HRESULTからの例外0x8002801D TYPE_E_LIBNOTREGISTERED)


どのようにセットアップ (配置) したのでしょうか。
Office PIA を配布したのでしょうか?

引用:

Book = ExcelApp.Workbooks.Add '新しいワークブックを追加

Book.Worksheets(1).Columns("B:B").HorizontalAlignment = xlCenter
Book.Worksheets(1).Columns("C:C").HorizontalAlignment = xlCenter
Book.Worksheets(1).Columns("D:D").HorizontalAlignment = xlCenter

Book.Worksheets(1).Columns("A:A").ColumnWidth = 31.5
Book.Worksheets(1).Columns("B:B").ColumnWidth = 15
Book.Worksheets(1).Columns("C:C").ColumnWidth = 20
Book.Worksheets(1).Columns("D:D").ColumnWidth = 15
Book.Worksheets(1).Range("B7") = TextBox127.Text
Book.Worksheets(1).Range("C7") = TextBox128.Text
Book.Worksheets(1).Range("D7") = TextBox129.Text
Book.SaveAs(strHH)
Book.Close()
ExcelApp.Quit()


COM の参照カウントのデクリメントが全く考慮されていないですね...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ざい
会議室デビュー日: 2007/02/01
投稿数: 4
投稿日時: 2007-02-01 11:23
"EXCEL は 2000 です" というのは、導入した端末のことでしょうか?
どの端末なのかがわからないのですが。

→プログラムをインストールしたPCのエクセルのバージョンが2000ということでした。

どのようにセットアップ (配置) したのでしょうか。
Office PIA を配布したのでしょうか?

→setup.exeでインストール(フレームワークなどをダウンロード)後、
PIAもダウンロードして配布済しました。

COM の参照カウントのデクリメントが全く考慮されていないですね...

→初心者なもので、知識不足ですみません(まわりにVBわかる人が皆無で・・・)

[ メッセージ編集済み 編集者: ざい 編集日時 2007-02-01 11:25 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-01 11:35
引用:

ざいさんの書き込み (2007-02-01 11:23) より:

プログラムをインストールしたPCのエクセルのバージョンが2000ということでした。


では、ビルドした端末の Excel のバージョンはいくつでしょうか?

引用:

初心者なもので、知識不足ですみません(まわりにVBわかる人が皆無で・・・)


まあ、VB というわけではないのですが、とりあえず、このあたりの 「プロセスが残る」 系の質問をご覧になるとよろしいでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ざい
会議室デビュー日: 2007/02/01
投稿数: 4
投稿日時: 2007-02-01 12:02
では、ビルドした端末の Excel のバージョンはいくつでしょうか?

→ビルドした端末はのExcelのバージョンはは2000です。
 OSはWINDOWS2000です。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-01 13:17
引用:

ざいさんの書き込み (2007-02-01 12:02) より:

ビルドした端末はのExcelのバージョンはは2000です。


ということは、レジストリが正しく登録されていないだけのようですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ざい
会議室デビュー日: 2007/02/01
投稿数: 4
投稿日時: 2007-02-01 14:07
レジストリが正しく登録されていないだけのようですね。

→なんどもお手数かけてすみません。
レジストリの登録はどうやればよろしいのでしょうか?
1

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