用户登录
用户注册

分享至

jsvbaword 怎么用JS调用自己录制的宏VBA

  • 作者: 幽默搞笑君
  • 来源: 51数据库
  • 2020-04-21

Word 开发人员参考

Application.Run 方法

运行 Visual Basic 宏。

语法

表达式.Run(MacroName, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15, varg16, varg17, varg18, varg19, varg20, varg21, varg22, varg23, varg24, varg25, varg26, varg27, varg28, varg29, varg30)

表达式 必选。一个代表 Application 对象的变量。

参数

名称 必选/可选 数据类型 说明

MacroName 必选 String 宏的名称。

varg1...varg30 可选 Variant 宏参数值。最多可以给指定宏传递 30 个参数值。

说明

MacroName 参数可以是任意模板、模块和宏名的组合。例如,下列语句均有效。

Visual Basic for Applications

Application.Run "Normal.Module1.MAIN"

Application.Run "MyProject.MyModule.MyProcedure"

Application.Run "'My Document.doc'!ThisModule.ThisProcedure"

如果指定了文档名,则此代码只能运行与当前环境有关的文档中的宏,而不是任何文档中的任何宏。

虽然 Visual Basic 代码可直接调用宏(无需使用 Run 方法),但当宏名存储在变量中时该方法仍很有用。(有关详细信息,请参见本主题示例。)下面三条语句作用相同。前两条语句需要引用 Normal.dot(被调用宏所在的项目);第三条语句由于使用 Run 方法,因此无需引用 Normal.dot 项目。

Visual Basic for Applications

Normal.Module2.Macro1

Call Normal.Module2.Macro1

Application.Run MacroName:="Normal.Module2.Macro1"

示例

本示例提示用户输入模板名、模块名、宏名以及参数值,然后运行该宏。

Visual Basic for Applications

Dim strTemplate As String

Dim strModule As String

Dim strMacro As String

Dim strParameter As String

strTemplate = InputBox("Enter the template name")

strModule = InputBox("Enter the module name")

strMacro = InputBox("Enter the macro name")

strParameter = InputBox("Enter a parameter value")

Application.Run MacroName:=strTemplate & "." _

& strModule & "." & strMacro, _

varg1:=strParameter

请教提取word数据到excel的vba改进方法

用那个里面的代码稍微修改即可,具体看了word文件才知道。能搞定2个,就能搞定多个。

VBA怎么取消word中的超链接

已经在之前那个问题回答你了

JS VBA如何获取bookmark对象

var WordApp=new ActiveXObject("Word.Application");

var docUrl = "c:/test.doc";

WordApp.Documents.open(docUrl);

WordApp.documents(0).bookmarks["name"]

JS能调用vba对象的事件吗,该怎么处理

如.

var WordApp=new ActiveXObject("Word.Application");

var docUrl = "c:/test.doc";

WordApp.Documents.open(docUrl);

word vba 中如何选择某一段中有下划线的部分内容作为range, 改为指定的内容

Public Sub 查找选择()

Dim N As Long

For N = 1 To ActiveDocument.Paragraphs.Count

ks = 0

js = 0

ActiveDocument.Paragraphs(N).Range.Select

bbbb = Selection.Text

sss = Selection.End - 1

Selection.MoveUp Unit:=wdParagraph

For x = 1 To sss

Selection.Find.ClearFormatting

With Selection.Find

.Text = "*"

.Replacement.Text = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

.MatchSoundsLike = False

.MatchWildcards = True

End With

Selection.Find.Execute

aaaaa = Selection.Text

If Selection.Font.Underline = wdUnderlineSingle Then

If ks = 0 Then

ks = x

End If

Else

If js = 0 And ks <> 0 Then

js = x

End If

End If

Next x

If js <> 0 And ks <> 0 Then

ActiveDocument.Paragraphs(N).Range.Select

Selection.MoveUp Unit:=wdParagraph

Selection.MoveRight Unit:=wdCharacter, Count:=ks - 1

Selection.MoveRight Unit:=wdCharacter, Count:=js - ks, Extend:=wdExtend

Selection.Text = "DDDDDD" '指定内容

Selection.Font.Name = "仿宋_GB2312"

Selection.Font.Bold = wdToggle

Selection.Font.Size = 16

Selection.Font.Underline = 0

end if

Next N

End Sub

如何调用word中一个vba函数CentimetersToPoints

肯定是可以的,不过我没试过,只是从帮助里得到的结论。

你可以用另一种办法:在EXCE的代码里激活WORD窗口,然后用 SendKeys 语句发送键盘信息调用WORD的宏,就像在直接使用WORD一样

用VBA在word中能不能画点或者画线

参考下面的代码,来自excelhome论坛:

Sublqxs()

Dimks,js,shpAsShape,a,b,a1,a2,b1,b2,x1,y1,x2

ForEachshpInSheet1.Shapes

Ifshp.Type=9Thenshp.Delete

Next

ks=Range("a1").Value:js=Range("b1").Value

a=ks*24:b=js*24

a1=Int(a):a2=a-a1

b1=Int(b):b2=b-b1

x1=Cells(4,a1-5).Left+Cells(4,a1-5).Width*a2:y1=Cells(4,a1-5).Top+Cells(4,a1-5).Height*0.5

x2=Cells(4,b1-5).Left+Cells(4,b1-5).Width*b2

DrawLinex1,y1,x2,y1

Range("a1").Select

EndSub

转载请注明出处51数据库 » jsvbaword 怎么用JS调用自己录制的宏VBA

软件
前端设计
程序设计
Java相关