如何将VB UserDialog转换为VBA UserForm?

时间:2016-12-21 15:45:14

标签: vba dialog wordbasic

我从1996年开始拥有这个非常古老的宏(是的!),我觉得有些Visual Basic(不确定)我无法在VBA中工作。大多数代码运行正常,但我对UserForm感到困扰,因为在此代码中它被称为Dialog
我想我需要创建一个用户窗体,因为VB不能用它来操作。但我不确定如何解决它。我应该创建一个新的用户窗体并根据坐标放置对象然后它会起作用还是最佳做法?

     Begin Dialog UserDialog x,y,291,171,"Batch Printing",.DialogFunction
            OKButton 204, 152, 40, 14
            CancelButton 248, 152, 40, 14
            Text 8, 4, 20, 8, "Path:", .Text1
            TextBox 8, 16, 96, 12, .dPath
            Text 8, 56, 32, 8, "Files:", .Text2
            ListBox 8, 68, 96, 96, sFilesList$, .dFiles
            PushButton 36, 36, 40, 14, "&Refresh", .dRefresh
            GroupBox 112, 8, 176, 92, "Select a printer", .SelectPrinter
            OptionGroup .PrinterSelection
                    OptionButton 120, 24, 92, 8, "&Default Printer", .DefPrint
                    OptionButton 120, 56, 84, 8, "&Specific Printer", .SpecPrint
            Text 128, 36, 148, 8, sDefaultPrinter, .Text3
            DropListBox 120, 68, 160, 52, sPrinterList, .SpecificPrinter
    End Dialog

1 个答案:

答案 0 :(得分:0)

WordBASIC很老了。有some ability in some versions of Word to automatically convert WordBASIC to VBA,所以你可以尝试一下,如果你能找到合适的版本(可能越旧越好,回到引入VBA时的Word 97),但我真的不希望它有很多

你最好的选择可能就像你建议的那样:用VBA风格创建一个新表单,使用代码作为所需控件的基线,并大致说明对话框的布局,并将逻辑与其他部分联系起来根据需要编写代码。

与任何移植项目一样,“最佳实践”是确保您尽可能了解真实的业务需求,并使用现有代码作为指导(并帮助更好地了解实际业务需求),但实际上是现代代码“正确的方式”来实现您的实际业务目标,而不是仅仅尝试逐行移植。