C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Microsoft Visual C# 2010 Expre


(過去ログ 101 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■59836 / inTopicNo.1)  Microsoft Visual C# 2010 Expre
  
□投稿者/ yo- (1回)-(2011/06/08(Wed) 13:12:52)

分類:[C#] 

Microsoft Visual C# 2010 ExpressでExcelが参照できない。

C#からExcelの操作がしたく、参照の追加から「Microsoft Excel 10.0 Object Library」を選択しましたが、

参照コンポーネント 'VBIDE' が見つかりませんでした。
参照コンポーネント 'Microsoft.Office.Core' が見つかりませんでした。
参照コンポーネント 'Excel' が見つかりませんでした。
タイプ ライブラリ "VBIDE" のラッパー アセンブリが見つかりません。
タイプ ライブラリ "Microsoft.Office.Core" のラッパー アセンブリが見つかりません。
タイプ ライブラリ "Excel" のラッパー アセンブリが見つかりません。

の警告が表示されます。

Office XPなので、下記URLからダウンロードしたexeファイルを実行し、作成されたフォルダ内のバッチファイルを実行しても参照がみつかりません。
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c41bd61...

また、デフォルトのバッチファイルを実行すると「gacutil' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示され失敗するので、gacutilをフルパスで指定するよう修正しました。
すると今度は、「failure adding assembly to the cache」と表示されます。
これはやはり失敗しているのでしょうか?

いろいろと調べましたが、分かりませんでした。

Excelを参照できる方法をよろしくお願いします。
引用返信 編集キー/
■59845 / inTopicNo.2)  Re[1]: Microsoft Visual C# 2010 Expre
□投稿者/ やじゅ (1915回)-(2011/06/08(Wed) 18:32:30)
やじゅ さんの Web サイト
2011/06/08(Wed) 18:48:49 編集(投稿者)
2011/06/08(Wed) 18:40:15 編集(投稿者)

No59836 (yo- さん) に返信
> Microsoft Visual C# 2010 ExpressでExcelが参照できない。
> Office XPなので
> Excelを参照できる方法をよろしくお願いします。

追記:
すみません、下記は既に実行されているのですね。
その上で、エラーが出ているってことですか。

先ず、Microsoft Office XP PIAを入手してください。
Microsoft Office XP には PIA は含まれていないのでダウンロードしてください。

Microsoft Office XP 用の PIA (Primary Interop Assemblies) のダウンロード
http://support.microsoft.com/kb/328912/ja

-----------------------------------------------------------------------
【追記】参照:http://dobon.net/vb/bbs/log3-35/21366.html

C:WINDOWSのインストールドライブ)にたとえばOffice XP PIAsという
フォルダを作って、C:\Office XP PIAs\ に解凍したとします。
Visual Studioコマンドプロンプトで(プログラムメニューから開けると思います)
まず、そのフォルダに移動(以下のように書いて[Enter])
cd C:\Office XP PIAs\
(以下のように書いて[Enter])
register.bat

それでインストールできなければ書いてある通りリストにあるdllについて
以下のように書いて[Enter]
gacutil -i XXXX.dll
regedit /s XXXX.dll.reg
を繰り返すだけです。

見つからないと言われたら絶対パスで
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe
(gacutil.exeは私の環境ではC:\WINDOWS\Microsoft.NET\Framework\v1.1.4322にあります。)

正しくインストールされれば、それらのdllがグローバルアセンブリキャッシュ(GAC、私の環境ではC:\WINDOWS\assembly)に表示されると思います。

「Failure adding assembly to the cache」のエラーは、
GACUtil.exeにあいまいな名前のアセンブリのファイル名を渡すと
表示されるエラーメッセージです。
引用返信 編集キー/
■59846 / inTopicNo.3)  Re[2]: Microsoft Visual C# 2010 Expre
□投稿者/ shu (767回)-(2011/06/08(Wed) 21:23:51)
参照設定せず、Activator.CreateInstanceなどとリフレクションを使用する方法もありますが、
どうでしょう?

http://dobon.net/vb/dotnet/vb2cs/createobject.html

http://d.hatena.ne.jp/zecl/20080128/p1

など参考になると思います。

解放に
Marshal.ReleaseComObject
も必要になるので、気を付けてください。
引用返信 編集キー/
■59852 / inTopicNo.4)  Re[3]: Microsoft Visual C# 2010 Expre
□投稿者/ yo- (2回)-(2011/06/09(Thu) 11:22:32)
みなさま回答ありがとうございます。
参照設定せずに遅延バインディングで試してみます。
また分からないところがあったら質問するかもしれません・・・
そのときはどうぞよろしくお願い致します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -