- 締切済み
エクセルの任意のシートをフォームに表示したい。
いつも参考にさせていただいています。 宜しくお願いします。 Access2002,Excel2002でタイトルのようなことを 実現しようと思ってます。 現在やっていることは、 フォームに「非連結オブジェクトフレーム」を用意して エクセルファイルを表示させているのですが 任意のシートを表示させたいと思っています。 手動で任意のシートをアクティブにしてフォームを再表示すると アクティブなシートがオブジェクトに表示されるのですが、、 VBAの操作によりシートをアクティブにする ことは可能でしょうか。 なにかお気づきの方が居られましたら ご教授宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
回答No.1
以前にここの掲示板でOLEのサンプルを作って、同様な状況に陥ったことがあります。 そこのURLを載せておきます。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=171840 No.7の発言が参考になるかも? 今OfficeもVBもインストールしてない環境なので、未検証ですが、 「OLEオブジェクト.Refresh」 で更新しないのであれば、 毎回EXCELを非表示で開き、表示したいシートを選択状態で保存終了させ、OLEに埋め込むという方法がありますが・・・面倒ですよね・・・ 現在のページを選択している周辺のソースと、最初からEXCELは埋め込みじゃなくてもよいのかを知りたいです。
お礼
回答ありがとうございます。 週末はパソコンに触っていなかったので、今朝見させていただきました。 今朝から、TAGOSAKU7さんに教えていただいたのをもとに 試してみたのですが、Accessでは、「OLEオブジェクト.Refresh」という形を サポートしていない(メソッドをサポートしていない)ようなので、 「Me.Refresh」などとしてみたのですが、どうもうまくいきません。 「ワークシート.Activate」で任意のシートをアクティブにするところまでは できており、VBAでアクティブにした後、手動でフォームを一度デザインビューにし、 そのあともう一度手動でフォームビューにするとアクティブになっているシートが OLEオブジェクトに表示されるのですが、VBAのみでの制御は現段階ではできておらず、 詰まっているとことです。 「ワークブック.Save」で保存処理も行っているのですが2回目以降保存しようとすると、「上書きしますか?」と メッセージが表示されてしまっています。 教えていただいたことをもとに、もう少しがんばってみます。