Powerpoint随机名称选择VBA

时间:2014-06-18 09:47:17

标签: vba powerpoint-vba

我在Powerpoint 2010中有以下VBA代码,可以随机从列表中选择一个名称:

Dim hat As New Collection

Sub fill_the_hat()
Dim items() As String
Dim x As Long
items = Split("Test\Names\John\Bob\Chris\Mike\Robert\Adam", "\")
For x = 0 To UBound(items)
hat.Add(items(x))
Next x
End Sub

Sub pick_one()
Dim x As Long
Randomize
x = Int(Rnd * hat.Count) + 1
MsgBox hat(x)
hat.Remove (x)
End Sub

我需要将其调整为输出到文本框而不是MsgBox,但这看起来并不像我想象的那么明显吗?

非常感谢任何帮助,

非常感谢, 约什

2 个答案:

答案 0 :(得分:0)

您必须直接使用UserForm和TextBox来更改内容。一个例子是:

UserForm1.TextBox1.Text = x

这必须在UserForm1.Show调用之前发生,或者您必须通过UserForm1.Repaint刷新表单

答案 1 :(得分:0)

如果您只是显示名称,则根本不需要使用ActivX文本框。只需使用普通形状或文本框

ActivePresenation.Slides(1).Shapes(" nameofshape")。Textframe.TextRange = hat(x)

当你使用网上的代码时,更常见的是说"我从John Wilson的文章中得到了这个代码"而是#34;我有这个代码"