ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

COMを使ってエクセルを起動する方法を教えてください

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008-10-3 13:16
gs_kuwabara  長老   投稿数: 229
いつもお世話になっております

 COMを使ってエクセルを起動する方法をお教えください

 OLE型の変数を定義
 
 外部コールで COM を指定して
 要素に Workbooks.Open を指定して
 パラメータで FileName を登録して
        代入でエクセルのファイル名を指定

 だけでは起動できないのしょうか?

 お願い致します
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2008-10-3 16:44
pu_mahalo  長老 居住地: 大阪  投稿数: 775
こんにちは

v9plusをインストールしたら
サンプルaplで excel comのプログラムが
インストールできるようになってますので
そちらをまず参考できる環境があれば 参考される事を
お勧めいたします

comの使用方法を文章で説明するのは
なかなか難しいので

それでもうまくいかない場合は
v10で試してみますので
どこがうまくいかないか またUPして下さい 
お答できる範囲で回答させていただきます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-3 16:53
gs_kuwabara  長老   投稿数: 229
お返事ありがとう御座います
V10しかないので・・・
申し訳ありません
もう少しがんばってみます
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-3 18:28
gs_kuwabara  長老   投稿数: 229
ボタンを押下した時にバックで特定のエクセルを開いて
それをPDFにしてプレビューがしたいのですが

まず、バックで起動ではなくエクセルが起動するかの
確認をしておりましたが

何も反応しない状態です
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-6 10:07
EijiNagai  常連   投稿数: 65
V9ですが、以下の手順で行っています。
とりあえずワークブックを開くまでとして。

変数は
アプリケーション
ワークシート

どちらもインスタンス化なし。

1) COMObjCreateでアプリケーションをCreate
(このとき、エクセルがないとエラー)
2)コールCOMでWorkbooks.Open
パラメータは別途設定した変数もしくは式でfilenameを指定。
戻り値にワークシートの変数を設定。

これでエクセルは起動しますが、visibleでは無いと思います。タスクマネージャで確認するとExcelが起動していると思います。

注意としてはCreateしたアプリケーションはReleaseする必要があります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-6 10:13
sk0014  半人前   投稿数: 37
下記の資料も見ても、「Excelを終了する」はありますが、「Excelを起動する」はありませんね。

「ファイルをオープンする」前に、外部コール>OSコマンドでExcelを直接、起動するしかないのではないでしょうか。

http://www.magiclab.net/download/excel_renkei/excel_com_guide.pdf
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-7 9:54
gs_kuwabara  長老   投稿数: 229
みなさんありがとうございます
がんばってみます
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-16 12:26
gs_kuwabara  長老   投稿数: 229
色々とがんばってみましたが・・・
素人のわたしには荷が重いみたいです

 山下博士のMagic実践活用講座から
 V9のExcel連携徹底活用サンプルプログラム
 をDLしてV9の体験版を入手して中を見ましたが
 新規excelのオープンならあるのですが
 既存のexcelのオープンはないようです

 Excel_Openと言うプログラムがあったのですが
 パラメータにシート名しかなく・・・
 
 教えていただきました
 COMObjCreateにつきましても調べてみましたが
 記述方法がわからない状態です

 DDEでやる方法は見つかったのですが
 DDEも今後どうなるか分からないので・・・

 やはり、素人が手を出してはいけない領域なのでしょうか・・・
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-16 14:43
atushi  半人前 居住地: 長野県  投稿数: 30
こんにちは
私の見解では、以下のようになります。

>Excel_Openと言うプログラムがあったのですが
>パラメータにシート名しかなく・・・

・パラメータの[シート名]というのは、
プログラムの記述間違いで、[ファイル名(フルパス)]が
正しいと思います。
よって、[ファイル名(フルパス)]をパラメータに送って
問題ないと思います。

ちなみに、[EXCEL 2000以上対応 VBA]のリファレンス的な
書籍も参考になるかと思います。

>教えていただきました
>COMObjCreateにつきましても調べてみましたが
>記述方法がわからない状態です

・Excel連携徹底活用サンプルプログラムの場合は、
メインプログラムで、[Excel Application]変数の特性で
インスタンス化が「自動」となっているため、
[COMObjCreate]及び[COMObjRelease]は、必要ないと思います。
この場合、メインプログラムが終了しないと
EXCELプロセスが解放されないと思います。

・プログラム単位で、EXCELプロセスを手動制御したい場合は、
[Excel Application]変数項目の特性でインスタンス化を[なし]
にして、プログラムの最初に[COMObjCreate]の実行を行い、
最後に[COMObjRelease]を実行するようになると思います。

・記述方法は、[Excel Application]変数の
項目識別子が[B]だとすると、項目更新コマンドにて、
インスタンスの作成の場合は、式「COMObjCreate ('B'VAR)」
インスタンスの解放の場合は、式「COMObjRelease ('B'VAR)」
を数値[N1]の変数項目に代入すれば良いかと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-17 9:29
gs_kuwabara  長老   投稿数: 229
atushiさま

 ありがとうございます
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-18 17:49
Kake  半人前 居住地: 愛媛県松山市  投稿数: 36
gs_kuwabaraさん、こんにちは。

もう解決されたでしょうか?

蛇足をば。
エクセルを起動するだけであれば、以下の手順でいかがかと。
・OLE項目は1つ(Excel Application;インスタンス化は自動)
・コールCOMで
 オブジェクトは、Excel Application のOLE項目
 Workbooks.openメソッドを呼び出す。
・呼び出しが完了するが、Magicから起動すると、Excelは不可視
・コールCOMで
 オブジェクトは、Excel Application のOLE項目
 Visibleのプロパティ設定で"True"LOGをセットする。

V9Plusでの方法ですが、V10でも同じと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-20 23:38
gs_kuwabara  長老   投稿数: 229
Kakeさん、ありがとうございます

 山下博士のサンプルをV10に変換して
 試しているのですが・・・

 OPENはタスクマネージャでexcelが
 動いている事は確認できました

 Visibleのサンプルもあったのですが
 そこで表示されない状態です

 なにかハンドルを取得して・・・とかするのでしょうか
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-10-23 17:30
Kake  半人前 居住地: 愛媛県松山市  投稿数: 36
gs_kuwabaraさん、こんにちは。

Magic V10.1 sp4b 試用版でサンプルプログラム作って
実験してみました。
V10からCOM呼び出しは"外部コール"に変わってるんですね。

Visibleの設定、論理型の'true'logの値を
セットしておられるでしょうか?

僕の作ったサンプルプログラムを、お送りしたほうが早いかも。
投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-10-24 1:00
gs_kuwabara  長老   投稿数: 229
Kakeさま
ありがとうございます

 正直、諦めかけていました・・・
 よろしければ、サンプル頂けませんでしょうか
 あつかましいお願いを致しまして申し訳ありません
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約