ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word如何编写窗体?如何同时写多个InputBox?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-6-4 16:42 | 显示全部楼层 |阅读模式
自己改写了一个word多级列表的自定义宏(见下),目前可以正常使用。
但是需要弹出多次inputbox来选,比较烧脑。
百度查到inputbox,只能一次输入1个参数,想输入多个要用到窗体。

那么问题来了,请教大佬

1。inputbox是否真的只能输入1个?
2。窗体有没比较好的案例,网上没搜到。(小白,只会改,不会写)



Sub 多级()
'
'
'多级列表(wdOutlineNumberGallery)与项目符号级别(wdBulletGallery)
'
Dim di&, dj&, dk&, dl&, dm&, dn&

dx1 = InputBox("一级样式", "多级列表样式", "%1、")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
        di = 37
    Else
        di = 0
    End If

dx2 = InputBox("二级样式", "多级列表样式", "%1.%2")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
    dj = 37
    Else
    dj = 0
    End If

dx3 = InputBox("三级样式", "多级列表样式", "%1.%2.%3")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
    dk = 37
    Else
    dk = 0
    End If

dx4 = InputBox("四级样式", "多级列表样式", "(%4)")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
    dl = 37
    Else
    dl = 0
    End If

dx5 = InputBox("五级样式", "多级列表样式", "%5)")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
    dm = 37
    Else
    dm = 0
    End If

dx6 = InputBox("六级样式", "多级列表样式", "%6.")

    If MsgBox("是:中文(否:数字)?", 4 + 48) = vbYes Then
    dn = 37
    Else
    dn = 0
    End If


    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = dx1
        .TrailingCharacter = wdTrailingNone '指定在编号列表项的编号之后插入的字符/wdTrailingTab/wdTrailingNone
        .NumberStyle = di 'https://docs.microsoft.com/zh-cn/office/vba/api/word.wdlistnumberstyle

        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft 'https://docs.microsoft.com/zh-cn/office/vba/api/word.wdlistlevelalignment
        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0 '控制编号序列从哪开始是1
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 1"

    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(2)
        .NumberFormat = dx2
        .TrailingCharacter = wdTrailingNone
        .NumberStyle = dj
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 1
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 2"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(3)
        .NumberFormat = dx3
        .TrailingCharacter = wdTrailingNone
        .NumberStyle = dk
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 2
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 3"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(4)
        .NumberFormat = dx4
        .TrailingCharacter = wdTrailingNone
        .NumberStyle = dl
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft

        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 3
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 4"
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(5)
        .NumberFormat = dx5
        .TrailingCharacter = wdTrailingNone '无制符,wdTrailingSpace,wdTrailingTab
        .NumberStyle = dm
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft

        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 4
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 5"
    End With

     With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(6)
        .NumberFormat = dx6
        .TrailingCharacter = wdTrailingNone
        .NumberStyle = dn
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignRight

        .TextPosition = CentimetersToPoints(0)
        .TabPosition = wdUndefined
        .ResetOnHigher = 5
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = "标题 6"
    End With

    ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdOutlineNumberGallery).ListTemplates(1), _
        ContinuePreviousList:=True, ApplyTo:=wdListApplyToWholeList, _
        DefaultListBehavior:=wdWord10ListBehavior
    MsgBox "多级列表自动设置完成"
End Sub

搜索
复制

TA的精华主题

TA的得分主题

发表于 2022-6-5 22:20 | 显示全部楼层
360截图20220605221851207.png

一个标题——label,选择用Combobox控件,基本就是这样。
简单的窗体很简单,窗体代码几十行。复杂的就比较麻烦了。
功能代码100行,窗体代码可能300行以上。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 02:50 , Processed in 0.040561 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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