HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0805
Area39既に起動して居るエクセルをnewcomなどで編集したい3未解決


Area39

リンク

2021/8/5(Thu) 07:57:10|NO.93486

エクセルを、HSPでコントロールしたいと考えて居ます。教えて下さい
newcom等を使ってエクセルを起動させ、その起動したエクセルのセルなどを編集
する方法は普通にあるかと思うのですが、既に起動して居るエクセルを
コントロールしたいです。
考えたやり方として、起動して居るexcelのハンドルを取得してきてそれで
出来たらと思うのですが、上手くいきません。

実際にやりたい事は、エクセルファイルの中身の置換となりますが、
とりあえず、セルの代入をやってみようと思います。


#uselib "user32.dll" #func global FindWindow "FindWindowExA" sptr,sptr,sptr,sptr #func global GetClassName "GetClassNameA" sptr,sptr,sptr hwnd_target = 0 hparent = 0 count = 0 msg = "" repeat //ウィンドウを検索 FindWindow hparent, hwnd_target, 0, 0 hwnd_target = stat if ( hwnd_target == 0 ) : break //クラス名を取得 sdim class, 1024 GetClassName hwnd_target, varptr(class), 1024 //dialog class if ( instr(class,0,"XLMAIN") != -1 ) { msg += ""+class+"("+hwnd_target+")\n" break } loop objsize ginfo_winx,ginfo_winy mesbox msg // 初期化 newcom xlApp, "Excel.Application" xlApp("visible") = 1 xlApp("displayalerts") = 0 xlBooks = xlApp("workbooks") xlBook = xlBooks("Add") xlSheet = xlBook("Worksheets","sheet1") // データを作成 xlSheet("Range","B1") = "名前"

このプログラムですと、エクセルのハンドルを取得するまではつくってあります。
が、エクセルが起動して居ても新たにエクセルを起動してそちらを編集してしまいます。

編集するエクセルの対象を既に起動して居るエクセルにしたいです。

ご指導、よろしくお願い致します。



この記事に返信する


Area39

リンク

2021/8/8(Sun) 23:17:36|NO.93521

もし、場合によっては、newcomではなく、excelを制御するような形でもOKです。
キーフックなど、できないでしょうか・・・?

よろしくお願いいたします。



ハルウララ

リンク

2021/8/14(Sat) 02:45:03|NO.93574

すでに起動中のEXCELはRunning Object Tableで管理されています。
そこから引っ張ってくれば、操作できるかと。

https://qiita.com/nukie_53/items/5d681a2f49a137204c14
http://eternalwindows.jp/com/moniker/moniker04.html



Area39

リンク

2021/8/21(Sat) 08:34:12|NO.93646

ハルウララさま

返信ありがとうございます。遅くなりすみません。

Running Object Tableで可能とのことですが、これをHSPで操作することで切るのでしょうか?



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93486への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2021(c) All rights reserved.