Excelのオブジェクトライブラリへの参照について
- プログラムからExcelマクロを操作するためのオブジェクトライブラリへの参照方法について教えてください。
- VS.Netの「プロジェクト」メニューの「参照の追加」でCOMタブ内の【Microsoft Excel ○○ Object Library】を追加する必要があります。
- Excelのバージョンによって、追加するライブラリのバージョンも変わるため、注意が必要です。
- ベストアンサー
Excelのオブジェクトライブラリへの参照について
こんにちわ。 プログラムからExcelマクロを操作するのに、 VS.Netですと「プロジェクト」メニュー「参照の追加」-「COM」タブ内の【Microsoft Excel ○○ Object Library】を追加する必要があります。 この○○の部分にバージョン番号が入り、Excelのどのバージョンを使うかで変わるということもわかりました。 ちなみにVC#2002.NETを使っています。 ここで、 1.このCOMに入っている「Excel ○○」は、VS.Netの入っているPCの中のOffice環境に対応したもののみなのでしょうか? つまり、「Excel2000」が入っているPCのVS.NETで開発している場合は、「Excel9.0 Object Library」(より古い)のみしか候補として出ないのでしょうか? 2.上記認識が正しければExcel2000のみが入っているPCで開発しているが、「Excel10.0 Object Library」を使いたい場合、その方法はあるのでしょうか? どなたかよろしくお願いします。
- kenton
- お礼率74% (110/148)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1.その通り。 2.無理だな。そもそもCOMオブジェクトの参照は、ローカルに設定されてあるCOMクラスから一覧を作成している。けどまぁ、2000、97、2002、2003は基本的なメソッドだけ使えば相互に運用ができる。 ちょっとケーススタディでまとめておいてあげよう。 (1)Excel2000が入っているパソコンで開発し、exeをExcel2002が入っているパソコンで実行→OK(自動でExcel10.0オブジェクトを使ってくれる) (2)Excel2002が入っているパソコンで開発し、exeをExcel2000が入っているパソコンで実行→2002で追加された機能を使わなければOK(自動でExcel9.0オブジェクトを使ってくれる) これは、97、2000、2002、2003では、数字が下で開発して数字が上ので実行する場合が(1)、逆が(2)と思ってくれてかまわない。 余談だが、Excel2000とExcel2002が両方入っているパソコンで実行する時に、インスタンス化する際、「Excel.Application.9」などと、後ろにドット数字を入れてあげる事で、必ずExcel2000オブジェクトを使う事ができる。指定しないと、「Excel.Application」オブジェクトが指す方のExcelが使われる。
関連するQ&A
- VB開発のMicrosoft Excel 9.0 Object Libraryでエクセル2007で動きますか?
VB2008使用、エクセル2000インストールされている環境で開発しています。 参照の追加でMicrosoft Excel 9.0 Object Libraryを選択するのですが、プログラムインストール先がエクセル2007使用しているので、エクセル2007で正常に動くか心配です。 事前バインディングの方が開発が楽なので事前バインディングを使用したいと思っています。 Microsoft Excel 9.0 Object Libraryでもエクセル2007で正常に動作しますでしょうか? それともMicrosoft Excel 12.0 Object Libraryを使用しないとダメでしょうか? よろしくお願いいたします<(_ _)>
- 締切済み
- Visual Basic
- VS2005、C#、Excel2002でExcelの操作
現在、開発環境が、 WinXP VS2005 Excel2002 なのですが、VS2005の参照の追加で、 Microsoft Excel 10.0 Object Library を追加すると、参照設定の「Excel」にビックリマークが出て、 「タイプライブラリ"Excel"のラッパーアセンブリが見つかりません。」と、 「参照コンポーネント'Excel'が見つかりませんでした。」 の2つの警告が出て、Excel操作の記述が書けません。 ちなみに、参照設定「Excel」のプロパティを見ると、パスが空になっています。 この状況で、C#でExcelを操作できるようにするにはどうしたらよいかご教授いただければ幸いですm(_ _)m
- ベストアンサー
- C・C++・C#
- Excel 12.0とExcel 10.0両方を使うアプリの参照設定方
Excel 12.0とExcel 10.0両方を使うアプリの参照設定方法。。。 こんにちは,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いいたします. 開発環境:VB2008+XPになります。 Excel2003とExcel2007両方に使えるアプリを作成したい次第で ございますが、ビルド時の参照設定はどのようにすべきでございましょうか?? 現在、2台のPCを交互に使用して作成いたしておりますが、 PC1:Excel2003のみインストール この場合、参照設定に Excel 10.0 Object Library が必要 Excel 12.0 Object Library に対し「システムでは指定された参照が見つかりません」 PC2:Excel2007のみインストール Excel 10.0 Object Library に対し「システムでは指定された参照が見つかりません」 Excel 12.0 Object Library が必要 となりますので、Excel 10.0とExcel 12.0を同時に参照することができませんorz PCをチェンジする度に参照設定を変えている次第でございますが、 最終的にExeファイルを作成するときは、Excel2003とExcel2007両方を インストールしたPCでなければいけないのでございましょうか。。。??? もしお詳しい方がいらっしゃいましたら,是非ともアドバイスいただきたく どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 参照設定で・・・
vb入門者ですが、よろしくお願いします。 2005を使っているのですが、 参照設定でCOMの Microsoft Excel11.0 object libraryを追加したいのですが、 追加するとパス名が、<システムでは、指定された参照が 見つかりません。>となってしまいます。 どうすれば、追加できるのでしょうか? 教えてください。よろしくお願いします。
- ベストアンサー
- Visual Basic
- Excel ライブラリ参照設定
Excel の =COUNTA(B2:B30,ISNUMBER) で、指定セル範囲から数値の入ったセル数を数えさせようとしますと、「Excel プロジェクトまたはライブラリが見つかりません」といメッセージが出て、次に 「参照設定-VBAProject」という名の、参照可能なライブラリ ファイルの並んだウインドウが出てきます。 さて、ここでどのファイルを選んだらよいのでしょうか。 それがわからないことには、参照のしようがありません。 どうぞ教えて下さい。よろしくお願いします。 (注)関数の ISNUMBER を、">0" あるいは "<>0" などの演算に変えてみても同じです。
- ベストアンサー
- オフィス系ソフト
- VC#での参照の追加が上手くいきません
VC#でアドインを作ろうとしているのですが、「プロジェクト→参照の追加」でCOMコンポーネントの追加が上手くいきません。 例えば、 Microsoft Outlook 11.0 Object Library を追加すると ソリューション エクスプローラの参照設定に"Outlook"が追加はされるのですが、アイコンに!マークが付いていて、クリックすると 「利用可能でないか、またはビルトされてないため、このオブジェクトをオブジェクトブラウザで表示することができません。プロジェクトが利用可能でビルトされていることを確認してください。」 という警告が出ます。 参照の追加をするにあたって、他に何か事前にやっておくことが有るのでしょうか? ちなみに、こちらの環境は Visual Studio 2005 Standard SP1 Microsoft Office 2003 SP3 Internet Explorer 7.0 Windows XP SP2
- 締切済み
- C・C++・C#
- VC++もしくはMFCからEXCELをコントロールする方法
今MFCのアプリケーションからExcelのセルにデータを入れたりするなどを行いと思います。 ネットで調べると、importやタイプライブラリによるクラス追加の方法があるのはわかりました。 ただExcelも複数のバージョンがあり、一つのプログラムでそれらを使い分ける方法はありますでしょうか? たとえば実行時にExcelのバージョンを指定してから実行するとか、そういった使い方が行えればと思っています。 あとタイプライブラリでクラスを追加した場合、そのプロジェクトをExcelのインストールされていないPCでビルドしたりできるのでしょうか?
- 締切済み
- C・C++・C#
- VB6.0へのExcel導入
ずいぶん前ですけど、VBにExcelのグラフを出しかたを質問したのですが、今回はVB6.0で出したいのですが…前回と同様にやろうとしてもできないです。どなたか知りませんか? ちなみに前回のは下記のとおりです。 VB.NETでExcelを利用するには、.NETの[参照の追加]ダイアログボックスを使って、必要なオブジェクトライブラリへの参照をプロジェクトに追加します。 [プロジェクト] → [追加の参照] → [追加の参照]ダイアログボックス → [COM]タブ → [Microsoft Excel.10.0 Object Library]を選択 → [はい] 次にExcelアプリケーションオブジェクトを生成します。 Dim ExlApp AS Excel.Application Dim ExlBook AS Excel.Workbook Dim ExlSheet AS Excel.Worksheet Dim ExlRange AS Excel.Range ExlApp = CreateObject("Excel.Application") ExlBook = ExlApp.Wookbooks.Add ExlSheet = ExlBook.Worksheets(1) ExelSheet.Application.Visible = True
- 締切済み
- Visual Basic
- DetectExcel 参照設定
VBで、Excelを起動する際、オブジェクト名.DetectExcelとやっています。 これが、参照設定「Microsoft Excel 11.0 Object Library」ではエラーとなり、「Microsoft Excel 9.0 Object Library」ではエラーになりません。 これは仕様なのでしょうか? 何か回避方法があればご教授下さい。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- エクセル2007
すいません。どなたかお教え下さい。 今までのエクセルでVBAで作ったもので、使えないものがあります。もともとの関数ではなく、Functionプロシージャ(でしたでしょうか?)で自分で作った関数が使えないようなのです。 新しいエクセルの参照設定はMicrosoft Excel 12.0 Object Libraryで、今までのはMicrosoft Excel 9.0 Object Library でした。(Microsoft Office 12.0 Object Libraryも同様に9.0でした) これが原因じゃないかと思っているのですが、もしそうだとすると、これの解決方法を教えて欲しいです。 これが原因じゃないとしたら、原因として考えられることを教えて欲しいです。 漠然とした質問で申し訳ないです。
- ベストアンサー
- オフィス系ソフト
お礼
早速の回答ありがとうございます。 ケーススタディが参考になりました。 自動で選択してくれ、互換性も基本的なメソッドに関してはあるということですね。 ちょっと安心しました。 また、何かの際に回答していただければ幸いです。