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") = "名前"
このプログラムですと、エクセルのハンドルを取得するまではつくってあります。
が、エクセルが起動して居ても新たにエクセルを起動してそちらを編集してしまいます。
編集するエクセルの対象を既に起動して居るエクセルにしたいです。
ご指導、よろしくお願い致します。