@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

VB.NETのwindowsformにEXCELのシートを埋め込む方法

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/03/23
投稿数: 105
投稿日時: 2006-10-11 17:08
いつもお世話になってます。

今 VB.NET 2003 にて開発を行っています。

実現したいこと
 @VBのフォーム画面の中にエクセルのシートを埋め込んで表示したい。
 A @が可能であるならばそのフォームに埋め込まれたエクセルの内容
  を編集して上書きしたい。(もしできるのであれば文字レベルだけ
  でなくオートシェープなども貼り付けたり編集したい。)

 上記が可能かどうかわかる方がおられましたらお教え下さい。

※ちなみにWEBでブラウザ上に埋め込む方法は調べていてみつかった
 のですがwinformについてはみつかりませんでした。

宜しくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-11 17:57
引用:

未記入さんの書き込み (2006-10-11 17:08) より:

実現したいこと
 (1) VBのフォーム画面の中にエクセルのシートを埋め込んで表示したい。
 (2) (1)が可能であるならばそのフォームに埋め込まれたエクセルの内容
  を編集して上書きしたい。(もしできるのであれば文字レベルだけ
  でなくオートシェープなども貼り付けたり編集したい。)


ここまで来ると、VB6 で 埋め込み OLE (OLE オートメーションではない) を
使用した方が良いのではないでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2005/03/23
投稿数: 105
投稿日時: 2006-10-12 09:38
じゃんぬねっとさん解答ありがとうございます。

確かにVB6.0のOLEの機能だとフォームに埋め込むこと
ができる事とオートシェープなどのオブジェクトもあつ
かえることは確認できました。

ここでひとつしつもんなんですがOLE上で編集したエクセル
の内容を保存することは可能でしょうか??

OLEをダブルクリックすることで編集可能となるのですが
上に出てくるメニューバーの中に編集〜ヘルプまでは出て
くるのですが ファイルがなく保存関連の操作が出来ません。

保存する方法がわかりましたら宜しくお願いします。
こちらも引き続き調査してみます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-12 10:23
引用:

未記入さんの書き込み (2006-10-12 09:38) より:

ここでひとつしつもんなんですがOLE上で編集したエクセルの内容を保存することは可能でしょうか??
OLEをダブルクリックすることで編集可能となるのですが上に出てくるメニューバーの中に編集〜ヘルプまでは出てくるのですが ファイルがなく保存関連の操作が出来ません。


OLE オブジェクトの SaveToFile メソッドで保存はできますが、
このメソッドでは、バイナリとして保存しますから Excel アプリケーションからは読み込み不可になります。

表示に関しては、Form に埋め込みという形で結構だと思いますが、
編集するのであれば、OLE オートメーションを素直に使うか、
埋め込み OLE を 「リンク」 として作成して、Excel アプリケーションに委譲するのが正攻法だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-10-12 10:41
.NET で OLE コントロールに似た動作を実現する方法について
http://msdn.microsoft.com/library/ja/jpdnvs05/htm/2005/migrate/OLE.asp
http://blogs.wankuma.com/naka/archive/2005/07/06/17522.aspx
未記入
大ベテラン
会議室デビュー日: 2005/03/23
投稿数: 105
投稿日時: 2006-10-12 11:42
じゃんぬねっとさん todoさん
お返事ありがとうございます。

じゃんぬねっとさんへ
やはり編集はOLEオートメーションでExcelを
開いて処理するのが普通みたいですね。
VB6.0でするのならばこの方法でやろうと思い
ます。
ありがとうございました。

todoさんへ
マイクロソフトのホームペーからサンプルをもって
きて実行してみて思ったのですが、既存のオートシェープ
などに対しての編集やコピーは出来るのですが新規に
作成したい場合にツールバーみたいなものをだすことは
できないのでしょうか??

こちらでも今から調査してみます。
解答ありがとうございました。
1

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