ARTICLE · 998271
使用VBA在Excel中绘图
使用VBA在Excel中绘图学习Excel技术,关注微信公众号: excelperfect 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。 欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
标签:VBA
要在Excel工作表中绘制下图1所示的形状,你会怎么做?

图1
如果你手动绘制,估计会花费大量的时间。然而,VBA能够很快搞定!详细的代码如下:
Sub DrawName()Dim i As IntegerDim x As SingleDim y As SingleDim z As SingleDim rng As RangeDim n As SingleDim k As IntegerDim sSize As SingleDim sh As ShapeDim sName As StringDim StartLeft As SingleDim StartTop As SingleStartLeft = ActiveCell.LeftStartTop = ActiveCell.TopsName = "Welcome to excelperfect !"n = 17k = Len(sName)sSize = Application.InchesToPoints(1)For i = 1 To kIf Mid(sName, i, 1) <> " " Thenx = n * i / kx = Application.InchesToPoints(x)y = Application.InchesToPoints(z)If i Mod 2 = 1 ThenSet sh = ActiveSheet.Shapes.AddShape(msoShapeUpRibbon, StartLeft + x, StartTop + y, sSize, sSize)ElseSet sh = ActiveSheet.Shapes.AddShape(msoShapeDownRibbon, StartLeft + x, StartTop + y, sSize, sSize)End Ifsh.Fill.ForeColor.RGB = RGB(GiveRandom(150, 200), GiveRandom(200, 255), GiveRandom)sh.Fill.Visible = msoTruesh.TextFrame.Characters.Text = UCase(Mid(sName, i, 1))sh.TextFrame.Characters.Font.Size = 20sh.TextFrame.Characters.Font.Name = "Arial"sh.TextFrame.Characters.Font.Bold = Truesh.TextFrame.Characters.Font.Color = RGB(0, 0, 0)sh.TextFrame2.VerticalAnchor = msoAnchorMiddlesh.TextFrame2.TextRange.ParagraphFormat.Alignment = msoAlignCenterEnd IfNext iEnd SubFunction GiveRandom(Optional lowerBound As Integer = 100, Optional upperBound As Integer = 255) As IntegerRandomize TimerGiveRandom = Int((upperBound - lowerBound + 1) * Rnd + lowerBound)End Function
试试看。
注:本文代码整理自vitoshacademy.com,供参考。