描述:
看了VB的宏脚本,不知道如何变成VC的
谢谢!
解决方案1:
#import "G:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL"
#import "G:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "G:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" rename("RGB", "ExcelRGB") rename("Delete","ExcelDelete") rename("DialogBox","ExcelDialogBox")
void Cexcel_picDlg::OnBnClickedOk()
{
// insert picture to excel
// environment: vc2003, excel2003, windows2003
using namespace Excel;
_variant_t covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
DWORD dwStartTime = GetTickCount();
_ApplicationPtr app;//("Excel.Application");
HRESULT hr = S_OK;
CLSID clsid;
CLSIDFromProgID(L"Excel.Application", &clsid);
app.CreateInstance(clsid);
WorkbooksPtr books;
_WorkbookPtr book;
long lcid =LOCALE_USER_DEFAULT;
SheetsPtr sheets;
app->get_Workbooks(&books);
book = books->Add(covOptional,lcid/*,&book*/);
book->get_Worksheets(&sheets);
IDispatchPtr pDisp;
sheets->get_Item(_variant_t((short)1),&pDisp);
_WorksheetPtr sheet(pDisp);
RangePtr range = sheet->GetRange(_variant_t("A1"),_variant_t("A1"));
range->Value2 = "aaa";
LPCSTR m_Path = _T("C:\\flower8.jpg");
PicturesPtr pics = sheet->Pictures();
pics->Insert(m_Path,VARIANT_FALSE);
app->put_AskToUpdateLinks(lcid,VARIANT_FALSE);
app->put_AlertBeforeOverwriting(lcid,VARIANT_FALSE);
app->put_UserControl(VARIANT_FALSE);
app->put_DisplayAlerts(0,VARIANT_FALSE);
LPCTSTR file_name = _T("c:\\aa.xls");
_variant_t varfilename(file_name);
DeleteFile(file_name);
HRESULT hrMethod = book->SaveAs(varfilename,covOptional,covOptional,covOptional,covOptional,covOptional,xlNoChange);
book->put_Saved(0,VARIANT_TRUE);
book->Close(COleVariant(VARIANT_FALSE));
books->Close();
app->Quit();
}
您可能想查找下面的文章:
- 请问一下,谁有BeauGauge的设计器能不能帮忙设计几个控件!还有一些问题想请教yix
- 请问使用ATL开发一个工具栏控件,但设置工具栏样式时找不到BTNS_AUTOSIZE等属性,为身摸?
- 请问在用ATL且不支持MFC的组件开发中,如何将从数据库中读到的DATE数据类型转挽回为字符串
- 请问控制面板里的管理工具中的组件服务损坏了怎么修复?修复2000没有用(无)
- 请问。activeX有两个方法。在IE中用javascript凋用。。。。。。。。。
- 请问ODL文件是什么?VC++里面有什么向导建立吗?//{AFX_APPEND_ODL}这一句是怎么通过向导加进去的?
- 请问那里有"InsideOLE"中文版书籍或电子图书?
- 请问:ActiveX控件怎样“不用加到对话框里,而直接在代码里用对象进行调用”,需要做什么初始工作呢?
- 请问谁会用OLE或COM或任何方法操纵OutlookExpress,或能赐教如何使用Outlook
- 请问现在搞corba和com,哪一个更有前途和“钱”途???迷茫了!

