エクセルのブックを非表示にする – プログラミング – Home

エクセルのブックを非表示にする
 
通知
すべてクリア

[解決済] エクセルのブックを非表示にする


wisteria
 wisteria
(@wisteria)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

開発環境
Windows 2000
Excel 2000
Visual Studio .net 2003

MFCでエクセルを操作する方法についてお聞きします。
エクセルを起動し、セルの値を読み書きする
アプリケーションを作成しています。

現在、アプリケーションからセルの値を読み書きすることは
できるようになりました.
この方法は
http://support.microsoft.com/kb/308407/
を参考に行いました.
タイプライブラリを使う方法を使っています。

質問したいことはアプリケーが開いたエクセルのブックを非表示にすることです。
既にエクセルを開いた状態で、アプリケーションからエクセルブックを開くと、
エクセルブックが表示されてしまいます。

アプリケーションから開いたエクセルブックを非表示にするにはどのようにすれば
よいのですか。
よろしくお願いします。

ちなみにエクセル自体や、シートの非表示は
put_Visible()メソッドを使えばできました.
ブックにかんするput_Visible()メソッドは存在するのですか。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

WorkBookオブジェクトのWindowsプロパティからWindowオブジェクトを取得して
(インデックスは1でよかったと思う)VisibleプロパティをFalseにすればいいです。


返信引用
wisteria
 wisteria
(@wisteria)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

Blueさん早い返事ありがとうございます。

Bleuさんに教えていただいたことを参考に
下記のコードを試した見ました。
ビルドは通るのですが、実行すると、
メンバが見つかりませんとエラーダイアログが出てきます。

wind.AttachDispatch(wbook.get_Windows());
wind.put_Visible(false);

VBAではBleuさんに教えて頂いた方法でできると思いますが、
MFCでタイプライブラリのラッパークラスを使っても、
同様の方法でできるのでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

違ってるかと。
WorkbookオブジェクトからWindowsオブジェクトを取得

WindowsオブジェクトからWindowオブジェクトを取得

Windowオブジェクトのput_Visibleメソッドで非表示にする。

つまり、真ん中の処理が抜けてるからエラーがでるわけです。


返信引用
wisteria
 wisteria
(@wisteria)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

Blue様ありがとうございます。
以下のコードにしたらブックを非表示にすることができました。

winds.AttachDispatch(wbook.get_Windows());
wind.AttachDispatch(winds.get_Item(COleVariant((short)1)));
wind.put_Visible(false);


返信引用
wisteria
 wisteria
(@wisteria)
ゲスト
結合: 17年前
投稿: 5
Topic starter  

解決しました.
ありがとうございました.


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました