工作环境→Excel vba用在Excel-VBA建立窗体→目标是在VB做成DLL.
现象:
从VBA中导出窗体后,再从VB6中导入,发现导入到了”设计器“中,而不是”窗体“中。
请问各位大侠如何解决。谢谢。

解决方案 »

  1.   

    excel-vba与VB6的窗体对比。VBA→控件内容表述给册掉了,多了{C62A69F0-16DC-11CE-9E98-00AA00574A4F}VERSION 5.00
    Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} Formtest 
       Caption         =   "演示窗体"
       ClientHeight    =   3225
       ClientLeft      =   45
       ClientTop       =   330
       ClientWidth     =   4710
       OleObjectBlob   =   "Formtest.dsx":0000
       StartUpPosition =   1  '所有者中心
    End
    Attribute VB_Name = "Formtest"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = FalseVB6→控件表述清楚。
    VERSION 5.00
    Begin VB.Form Form1 
       Caption         =   "Form1"
       ClientHeight    =   3195
       ClientLeft      =   60
       ClientTop       =   345
       ClientWidth     =   4680
       LinkTopic       =   "Form1"
       ScaleHeight     =   3195
       ScaleWidth      =   4680
       StartUpPosition =   3  '窗口缺省
       Begin VB.CommandButton Command1 
          Caption         =   "Command1"
          Height          =   495
          Left            =   600
          TabIndex        =   0
          Top             =   600
          Width           =   975
       End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
      

  2.   

    excel-vba窗体与VB6窗体相比,多了这段话。
    OleObjectBlob   =   "Formtest.frx":0000
    是不是由于这个原因,VBA的FRM导入到VB6的结果就是到了设计器中。
    谢谢。
      

  3.   

    他们用的是不同的库吧。两个窗体不同的。
    vba的窗口的类名是“F3 Server 60000000”
    vb的是“ThunderFormDC”
      

  4.   

    VBA里的窗体跟VB6的窗体不是一个概念 VBA是用microsoft forms 2.0构建窗体的 两者的控件属性和方法都有很大差异
      

  5.   

    没错。
    但是要让VBA的窗体能够完全工作,不只是处理你目前发现的这些,在具体的代码里也要进行转换的,不少VBA的方法函数在VB里有另外对应的方法。这个可能你应该知道的。能去研究窗体源文件里格式的,基本都比较有经验了。