- - PR -
開いていないExcelのデータを参照したい
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-08-28 11:28
AとBのExcelがあります。
また、A,Bのシート構成は以下となります。 A:Sheet1 B:Sheet1,Sheet2,Sheet3 Aのマクロから、条件指定して、Bのシートの一つををコピーして、AのExcelにシートを追加したいと思います。 そのとき、BのExcelは開いていないでも出来るのでしょうか? また、条件でSheet4とした時、Bには、Sheet4がありません。 その時のSheetの存在チェックもExcelを開いていないも可能でしょうか? | ||||||||||||
|
投稿日時: 2007-08-28 11:37
"Excel" ではなく 'Excel ブック' もしくは 'Workbook' のことですね。
Office PIA / VSTO いずれを使用するにしても内部的に開いています。 MCP さんが心配しているのは "開いていなくとも" ではなく '表示していなくても' だったりしないでしょうか?
上記とまったく同じ回答になります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-08-28 11:52
はい、そうです。
Office PIA / VSTOってのが知識不足で知りませんが、 普通にExcelのマクロを使用します。 内部的にすべてのBookが開いているということなんですかね? | ||||||||||||
|
投稿日時: 2007-08-28 12:11
おっと、VBA でしたか。
すべての Book というか、MCP さんが操作したいと思っている Workbook が内部的に開かれます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-08-28 13:51
ExecuteExcel4Macro関数(Excel 4.0 マクロ関数を実行)を使って他のBookにアクセスした場合は,内部的にも開かずにアクセスできると聞いたことがあります。
しかし,Excel4.0のマクロ関数に関する資料はほとんど見あたらないので具体的にどうやったらシートのコピーができるのかはわかりません。 仮想PCにでも古いExcelをインストールしてみればヘルプがあるかもしれません。 仮想PCにWindows3.1をインストールするところまではやってみたのですが,Excelのフロッピーで読めないものがあり,インストールできませんでした。15年以上前のものなので...(関係ないですけど,仮想PC内でWin3.1,1秒で起動してびっくりした...) [ メッセージ編集済み 編集者: YAS 編集日時 2007-08-28 13:54 ] | ||||||||||||
|
投稿日時: 2007-08-28 14:33
どっちにせよ、内部的に開かないとシート存在チェックは出来ないと
いう事なんですよね。 | ||||||||||||
|
投稿日時: 2007-08-28 16:04
人様の質問にはスルーで自分の質問だけさっさと答えろってやつは自己中だよねぇ。
それにしても冷静によくやるなぁ。 | ||||||||||||
|
投稿日時: 2007-08-28 17:52
例えば,
Debug.Print (ExecuteExcel4Macro("'D:\[Book1.xls]Sheet1'!R1C1")) とすれば,「Book1.xls」に「Sheet1」があれば,「A1」の値が表示されます。 「Sheet1」がなければ「エラー 2023」が表示されます。 ちなみに「Book1.xls」がないとファイルを選択するダイアログが開いてしまいます。 次のように関数化すれば使えるのではないかと思います。
次のように呼び出します。 Debug.Print (SheetExists("D:", "book1.xls", "Sheet1")) かなり大きいファイルでもすぐにチェックができるので内部的に開いていないと思います。 [ メッセージ編集済み 編集者: YAS 編集日時 2007-08-28 17:54 ] |
1