ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2444|回复: 2

高手帮我看看这段代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-5-12 09:32 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); //开始一个Microsoft Word实例 if (!oWordApp.CreateDispatch("Word.Application")) { AfxMessageBox("CreateDispatch failed.", MB_OK | MB_SETFOREGROUND); return; } //建立一个新的文档 Documents oDocs; _Document oDoc; oDocs = oWordApp.GetDocuments(); oDoc = oDocs.Open(COleVariant("d:\\demo.doc"), COleVariant((short)0), vFalse, vFalse,COleVariant(""), COleVariant(""),vTrue, COleVariant(""), COleVariant(""),vFalse, vFalse, vTrue);

PageSetup pageset = oDoc.GetPageSetup();

long lPage = ((Range)oDoc.GetContent()).GetInformation(4).lVal;

for(int i=1;i<=lPage;i++) { try{ Shapes shapes = oDoc.GetShapes(); Range page = oDoc.Range(COleVariant((long)0),COleVariant((long)0)); page = page.GoTo(COleVariant((long)1),vOpt,COleVariant((long)i),vOpt); page = page.GoTo(COleVariant((long)-1),vOpt,vOpt,COleVariant("\\Page"));

VARIANT varRange; ::VariantInit(&varRange); varRange.vt = VT_DISPATCH; varRange.pdispVal= page.m_lpDispatch;

Shape shape = shapes.AddPicture("C:\\Documents and Settings\\Administrator\\My Documents\\My Pictures\\1.bmp",vFalse,vTrue,COleVariant((float)0),COleVariant((float)0),/*&page.GetInformation(wdHorizontalPositionRelativeToPage),&page.GetInformation(wdVerticalPositionRelativeToPage,*/ COleVariant((float)pageset.GetPageWidth()),COleVariant((float)pageset.GetPageHeight()),&varRange);

shape.SetRelativeHorizontalPosition(1); shape.SetRelativeVerticalPosition(1);

shape.SetLeft((float)0); shape.SetTop((float)0);

WrapFormat wrapFormat = shape.GetWrapFormat(); wrapFormat.SetSide(0); wrapFormat.SetType(3); shape.ZOrder(5); PictureFormat picFormat = shape.GetPictureFormat(); picFormat.SetBrightness(0.5); picFormat.SetContrast(0.5); picFormat.SetColorType(1);

FillFormat fillFormat = shape.GetFill(); fillFormat.SetVisible(false); fillFormat.Solid(); fillFormat.SetTransparency(0);

shape.ScaleHeight(1,true,0); shape.ScaleWidth(1,true,0);

picFormat.SetTransparentBackground(true); picFormat.SetTransparencyColor(RGB(255,255,255)); fillFormat.SetVisible(false); ::VariantClear(&varRange);

picFormat.ReleaseDispatch(); fillFormat.ReleaseDispatch(); wrapFormat.ReleaseDispatch();

page.ReleaseDispatch(); shape.ReleaseDispatch(); shapes.ReleaseDispatch(); }catch(COleDispatchException *e) { }

} oWordApp.SetVisible(true);

目的是给每页添加一张图片,但是在FOR循环中会出现释放错误,但是相应的宏在WORD执行正常!

TA的精华主题

TA的得分主题

发表于 2005-6-27 16:38 | 显示全部楼层

你是在VC中用编的这吗,看不懂啊?你会用VC那就请帮忙看一看这个贴到的倒数几二楼吧。助人为乐吧。

http://club.excelhome.net/viewthread.php?tid=29606

[此贴子已经被作者于2005-6-28 5:47:23编辑过]

TA的精华主题

TA的得分主题

发表于 2005-6-27 17:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
今天终于知道什么叫天书了?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-21 19:31 , Processed in 0.028510 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表