[英]Draw Shape Based on Cell Values
所有,
我有基於宏本身輸入值創建形狀的代碼。 我想要用戶指定的形狀類型,寬度和高度的值(工作表上的形狀位置現在對我無動於衷)。 用戶將上述寬度和高度的數值輸入到單元格中,並單擊一個按鈕,該按鈕將輸出用戶想要的形狀類型和尺寸。
在我的情況下,將有一個“矩形”和“圓圈”的下拉框。 我不知道如何讓代碼讀取這些單詞並分別將其轉換為“1”和“9”。 我可能只是讓用戶選擇1或9來創建形狀。
我還想將文字添加到形狀的中心。 我再次為此創建了一個代碼,但它在宏中。 我想讓代碼引用一個單元格值。 我假設它與上面相同。
謝謝你的幫助。
Sub AddShape()
Dim s As Shape
Dim ws As Worksheet
Set ws = Sheets("Deck Layout")
'add a shape
Set s = ws.Shapes.AddShape(1, 80, 80, 75, 75)
'make it nearly white
s.Fill.ForeColor.RGB = RGB(245, 245, 255)
'show text within it
s.TextFrame.Characters.Text = "1"
s.TextFrame.Characters.Font.ColorIndex = 2
With s.TextFrame.Characters(0, 0)
s.TextFrame.HorizontalAlignment = xlHAlignCenter
s.TextFrame.VerticalAlignment = xlVAlignCenter
.Font.Color = RGB(0, 0, 0)
End With
End Sub
由於你已經在評論中得到了部分答案,我將專注於形狀選擇。
看看這個:
Dim ShapeType As MsoAutoShapeType
Select Case LCase(ws.Range("b1").Value)
Case "rectangle"
ShapeType = msoShapeRectangle
Case "circle"
ShapeType = msoShapeOval
End Select
Set s = ws.Shapes.AddShape(ShapeType, 80, 80, 75, 75)
它將在B1中找到值,將其轉換為小寫,並將其測試為“矩形”和“圓”,並將ShapeType設置為相應的值。
您可以使用1和9代替,但這是不好的做法。 使用定義的常量 - 它將使您的代碼更容易閱讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.