作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 開啟一個EXCEL檔並且執行EXCEL的某個巨集
時間Thu Jan 20 21:44:33 2011
※ 引述《Linethan (冷冷的心)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev-C++ 4.9.9.2
: 問題(Question):
: 我想要寫出一個執行檔
: 每次執行時它就會去開啟電腦裡的一個EXCEL檔(指定好路徑)
: 開啟後讓EXCEL檔跑裡面的一個巨集(已經寫好的巨集)
: 等巨集跑完後將EXCEL檔儲存並且關閉
: 我爬過文 知道開啟檔案可以使用system("路徑") 對嘛?
: 可是我不知道該怎麼下指令去執行EXCEL的某個巨集
: 然後再儲存EXCEL檔並關閉
: 拜託各位板友指教
先聲明,這不是為推廣 vba ,而是小弟不才認為這問題用 vba 處理好些。
這個問題我只是想給的建議是,
如果用 C 語言去呼叫 excel 執行特定巨集,
這樣我覺得很不方便,提的建議是
1. 把該 .xls(x)、.xlm 要執行的 macro 寫在剛開啟 excel 時執行,
相當於 MFC 當中的 WM_CREATE 訊息,這個動作不難,精靈可以協助完成。
2. 如果是要呼叫多個 .xls(x) 的 macro,我也建議用 vba 去處理比較方便,
就一個 .xls 去叫去其它 .xls(x) 的 macro,這個 vba 也比 c 好處理。
3. 如果你希望處理完 excel 後要把 EXCEL.exe 這個執行程式關閉就有很多做法,
可以用 C,比較麻煩一點點,用 vba 的話一行就結束。
4. 如果硬要用 C/C++ 去呼叫 .xls 巨集,小弟不才我認為用 C 控制 excel
沒什麼二樣,至於用 c 去控制 excel 這是一個可以研究很久的東西,
目前網路上討論及資源似乎也沒針對 C 去呼叫 excel 之 macro,
只有用 C 去控制 excel,這是一條漫長的道路,所以不建議您這麼做。
5. (1) (2) 完成後,用 C 唯一要做的事情是,用
system、WinExec、 ShellExecute 其中一種方式去呼叫該 .xls,
當然也可以把那個 excel 設計一份 UserForm,
執行時看起來就像普通的應用程式一樣,這樣就完全用不到 C 語言。
至於原推文中的 sikuli,這是另一套軟體,
應該是和按鍵精靈差不多的軟體,如果真要用其它軟體的話,
AutoIt 倒是我的首推,(不過用 vba 真的不難!就算沒經驗三天可以搞定。)
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
※ 編輯: tropical72 來自: 180.177.76.142 (01/20 21:47)
推 ericinttu:要用C的話, 我推BCB. XD 我真是不求上進 01/20 22:03
→ tropical72:哦,對唷!!用 c 控 excel 真的是 bcb 比較方便 01/20 22:40
→ ericinttu:記得一個月前也有討論到這個. 01/20 23:04
→ tropical72:是啊,不過真的良心建議去學vba,學習時間比c開發還短 01/20 23:21
推 horngsh:推VBA 01/21 10:33