ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

如何控制这种对话框

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-8 18:08 | 显示全部楼层

抱歉,我不是太能表达我的意思,不过并不是我不想传我的代码上来,而是我是用Delphi编程,通过OLE实现,所以我上传有一定困难,但我能把VB的转换过去,

我试着吧它转成VB形式,可能代码有错,肯是写的伪代码,见谅

Option Explicit Sub Example() Dim MyDialog As Dialog, OldFontName As String, NewFontName As String,stylesName As String stylesName=选择的样式,如:标题 2 With ActiveDocument.Styles(stylesName) Set MyDialog = Dialogs(wdDialogFormatDefineStyleFont) With MyDialog .Font = ActiveDocument.Styles(stylesName).Font ' (这行是我想要的伪代码:前面这个Font是指Dialogs的属性,等号后面的是所选样式的Font) If .Show = -1 Then ActiveDocument.Styles(stylesName).Font= .Font (这里是更新设置) End If End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-9 10:56 | 显示全部楼层

想实现这样的代码行不通嘛?

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-9 14:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-8-9 17:09 | 显示全部楼层
Option Explicit Sub Example() Dim MyDialog As Dialog, OldFontName As String, NewFontName As String With Me.Styles("标题 2") OldFontName = .Font.NameFarEast Set MyDialog = Dialogs(wdDialogFormatDefineStyleFont) With MyDialog .fontmajor = OldFontName '****** If .Show = -1 Then NewFontName = .fontmajor End If End With MsgBox NewFontName If NewFontName <> OldFontName Then '此处可以适当修改,以便应于所选样式的修改 .Font.Name = NewFontName MsgBox "标题 2原有中文字体为" & OldFontName & ";" & vbCrLf & "现已修为您选定的" & NewFontName & "中文字体!" End If End With End Sub '----------------------

我还是不太明白楼主的意思。注意,对话框中的参数(如下),可以设置,也可以返回,我把这些参数列了出来,楼主看需要的用吧。

Points、UnderlineColorStrikeThroughSuperscriptSubscriptHiddenSmallCapsAllCapsSpacingPositionKerningKerningMinDefaultTabFontBoldItalicDoubleStrikeThroughShadowOutlineEmbossEngraveScaleAnimationsCharAccentFontMajorFontLowAnsiFontHighAnsiCharacterWidthGridColorRGBUnderlineColorPointsBiColorBiFontNameBiBoldBiItalicBiDiacColor

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-10 10:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢,我基本上明白了,

是这样的,我确实也是考虑了用对话框参数进行设置,但无法通过参数Font的设置,我想可能是我对Font理解有错误吧,通常,我认为Font代表所有的字体的属性(名称,粗体,斜体等等),所以对话框Font直接用styles的Font赋值就够了.但测试同不过.另外我用MyDialog.Font.Name取名也是错误的操作,所以对话框参数Font代表是什么,能否告知,或者演示一下它怎么设置,我想就OK了.

非常谢谢守柔,我为这个问题折腾了一个月,快发疯了,有点笨笨的转不出来 还有一个问题,是在守柔代码里的出现的问题,为什么我设置的是styles中的某一项,整个的Word文本都被修改了?守柔好像前面提到过这种可能,但我没有明白该怎么避免这件事发生.

[此贴子已经被作者于2005-8-10 10:40:28编辑过]

TA的精华主题

TA的得分主题

发表于 2005-8-10 11:44 | 显示全部楼层

请注意我上述代码中,字体的返回 .fontmajor 与设置属性!

再请参:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-8-10 11:45:41 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 0005^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub Example() Dim MyDialog As Dialog, OldFontName As String, NewFontName As String With Me.Styles("标题 3") OldFontName = .Font.NameFarEast Set MyDialog = Dialogs(wdDialogFormatDefineStyleFont) With MyDialog .fontmajor = OldFontName '****** If .Show = -1 Then NewFontName = .fontmajor End If End With MsgBox NewFontName If NewFontName <> OldFontName Then '此处可以适当修改,以便应于所选样式的修改 .Font.Name = NewFontName .AutomaticallyUpdate = True ' MsgBox "标题 2原有中文字体为" & OldFontName & ";" & vbCrLf & "现已修为您选定的" & NewFontName & "中文字体!" End If End With End Sub '----------------------

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 12:47 , Processed in 0.033582 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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