用DELPHI开发VBA为什么没有代码完成功能 ( 积分: 50 )

  • 主题发起人 主题发起人 8122338
  • 开始时间 开始时间
8

8122338

Unregistered / Unconfirmed
GUEST, unregistred user!
用DELPHI开发VBA为什么没有代码完成功能,这太麻烦了,请问如何解决呢?谢谢
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Variants;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

uses Comobj;

//打开EXCEL新建文件
procedure TForm1.Button1Click(Sender: TObject);
var
v:Variant;
begin

v:= CreateOleObject('Excel.Application');
v.Visible := True;//是否显示
//为什么输入V.后不会出现代码自动完成的选择项,如何解决呢?谢谢
//按照常规,输入V.后会跳出VISIBLE,就开发VBA的没有代码自动完成功能,奇怪,如何解决呢?谢谢

end;
----------------------------------------------
 
没有办法解决,也不可能有办法解决。可以对Variant和OleVariant调用任意名称的方法,传递任意类型,任意数量的参数,访问任意任意名称的属性,这都能通过编译,但是在运行时要是COM对象没有对应名称的方法和属性,会抛出异常。既然可以写<任意名称>,你说要怎么实现代码完成?
 
请问如何导入Excel的类型库,导入后能对编译期间的OLE对象提供类型检查吗?谢谢
 
都是接口定义,在安装目录下有ExcelXP.pas(视版本而定)就是了
 
导入后也不能对编译期间的OLE对象提供类型检查,郁闷,有什么好办法吗?否则开发VBA输入太麻烦啊
 
太阳,发克。
你用variant当然没代码完成,没类型检查。
用接口:
function StartExcel:_Application;
begin
Result:=CreateComObject(CLASS_EXCELAPPLICATION) as _Application;
_Application.Visible[0]:=True;
end;

你老母的,看看这样有没有代码完成和类型检查。
 
灾害果然是懂com~~
 
您说的非常对,但使用Delphi提供的Servers控件调用Office不能实现完全控制OFFICE,以CreateOleObjects方式调用Office更加灵活,这种办法就不能够实现代码提示吗?非常谢谢
 
后退
顶部