本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:注册会计师(注会)练习软件
日志总数:398
评论数量:116
留言数量:27
访问次数:3269041
建立时间:2005年6月6日




[delpih编程]测试范例:delphi向excel写入宏代码,运行excel宏代码
软件技术

吕向阳 发表于 2011/6/12 20:56:09

procedure TForm1.Button2Click(Sender: TObject);var  i: integer;  PathName: string;  oldcur: tcursor;  FExcelApplication: TExcelApplication;  FExcelWorkbook: TExcelWorkbook;  FExcelWorksheet: TExcelWorksheet;  xl: olevariant;  V: _VBComponent;  vArg1, vArg2, vArg3, vArg4, vArg5, vArg6, vArg7, vArg8, vArg9, vArg10,    vArg11, vArg12, vArg13, vArg14, vArg15, vArg16, vArg17, vArg18, vArg19, vArg20,    vArg21, vArg22, vArg23, vArg24, vArg25, vArg26, vArg27, vArg28, vArg29, vArg30: OLEVariant;begin  try    FExcelApplication := TExcelApplication.Create(nil);    FExcelWorkbook := TExcelWorkbook.Create(nil);    FExcelWorkSheet := TExcelWorksheet.Create(nil);  except    showmessage('对不起,您没有安装Excel 2000!');    abort;  end;  vArg1 := EmptyParam; vArg2 := EmptyParam; vArg3 := EmptyParam; vArg4 := EmptyParam;  vArg5 := EmptyParam; vArg6 := EmptyParam; vArg7 := EmptyParam; vArg8 := EmptyParam;  vArg9 := EmptyParam; vArg10 := EmptyParam; vArg11 := EmptyParam; vArg12 := EmptyParam;  vArg13 := EmptyParam; vArg14 := EmptyParam; vArg15 := EmptyParam; vArg16 := EmptyParam;  vArg17 := EmptyParam; vArg18 := EmptyParam; vArg19 := EmptyParam; vArg20 := EmptyParam;  vArg21 := EmptyParam; vArg22 := EmptyParam; vArg23 := EmptyParam; vArg24 := EmptyParam;  vArg25 := EmptyParam; vArg26 := EmptyParam; vArg27 := EmptyParam; vArg28 := EmptyParam;  vArg29 := EmptyParam; vArg30 := EmptyParam;  FExcelApplication.Visible[0] := True;  FExcelApplication.Connect;  FExcelApplication.Caption := 'test1';  FExcelApplication.Workbooks.Add('d:\1.xls', 0);  FExcelWorkbook.ConnectTo(FExcelApplication.ActiveWorkbook);  FExcelWorksheet.ConnectTo(FExcelWorkbook.Activesheet as _WorkSheet);  V := FExcelWorkbook.VBProject.VBComponents.Add(1);  V.name := 'Module'; // V.CodeModule.AddFromString('Public Sub test() ' + #13 + 'msgbox("test") ' + #13 + 'end sub');    V.CodeModule.AddFromFile('d:\1.bas'); {动态加载宏除了的几种方法:V.CodeModule.AddFromString                          V.CodeModule.AddFromFile                          V.CodeModule.InsertLines} // FExcelApplication.Visible[0] := True;  FExcelApplication.Run('abc', vArg1, vArg2, vArg3, vArg4, vArg5, vArg6, vArg7, vArg8, vArg9, vArg10,    vArg11, vArg12, vArg13, vArg14, vArg15, vArg16, vArg17, vArg18, vArg19, vArg20,    vArg21, vArg22, vArg23, vArg24, vArg25, vArg26, vArg27, vArg28, vArg29, vArg30);end;===========注:1)、d:\1.xls 为任意建的一个空excel文件2)、d:\1.bas 为用excel 宏录制的一段代码,其中有一个过程 abc(),宏代码如下(随便录的)Sub abc()    Range("C4").Select    ActiveCell.FormulaR1C1 = "1111"    Range("C4").Select    Selection.AutoFill Destination:=Range("C4:C10"), Type:=xlFillDefault    Range("C4:C10").Select    Range("D4").Select    ActiveCell.FormulaR1C1 = "666"    Range("D4").Select    Selection.AutoFill Destination:=Range("D4:D10"), Type:=xlFillDefault    Range("D4:D10").Select    Range("C4:D10").Select    With Selection.Interior        .Pattern = xlSolid        .PatternColorIndex = xlAutomatic        .Color = 65535        .TintAndShade = 0        .PatternTintAndShade = 0    End With    Range("D6").Select    With Selection.Interior        .Pattern = xlSolid        .PatternColorIndex = xlAutomatic        .Color = 255        .TintAndShade = 0        .PatternTintAndShade = 0    End WithEnd Sub


阅读全文(2460) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.255 second(s), page refreshed 144776895 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号