2015-11-13 29 views
7

Có thể thay đổi chiều rộng hoặc chiều cao của SmartArtNode không?Thay đổi chiều rộng hoặc chiều cao của SmartArtNodes

mã sau đây không hoạt động tại ở tất cả:

' mySmartArt is a SmartArt Object 
mySmartArt.AllNodes.Item(1).Shapes.Width = 4 

Lạ lùng thay nó hoạt động nếu bạn thay đổi chiều rộng của một hình dạng. Vì vậy, tôi không có đầu mối tại sao Shape Objects của SmartArtNodes không thể thay đổi kích cỡ. Cách duy nhất tôi biết là sử dụng các phương pháp lớn hơn hoặc nhỏ hơn, nhưng bằng cách sử dụng phương pháp này nó không thể chỉ thay đổi chiều rộng/cao của một hình dạng.

Nếu tôi sử dụng mã ở trên, tôi sẽ luôn gặp lỗi RunTime "Object không hỗ trợ tác vụ này (Error 445)", điều này thật lạ vì thông qua GUI của Excel tôi có thể thay đổi chiều rộng và chiều cao của Các nút đơn của SmartArt không có vấn đề gì. Vì vậy, nó không thực hiện bất kỳ ý nghĩa tại sao nó không nên có thể thay đổi nó thông qua VBA.

Có ai đó là một ý tưởng về cách tôi có thể giải quyết vấn đề này không?

+0

http://www.tek-tips.com/viewthread.cfm?qid=1709060 bài đăng ngày 4 tháng 5 lúc 19:23. Có vẻ như anh ấy đang sử dụng bố cục, tôi không biết liệu điều này có thể áp dụng cho bạn hay không nhưng dường như đủ thú vị để xem xét! ;) – R3uK

+0

Có thể thử mySmartArt.AllNodes.Item (1) .Shapes.Item (1) .Width? –

+0

@ExcelDevelopers mySmartArt.AllNodes.Item (1) .Shapes.Item (1) .Width không hoạt động; có vẻ như không thể thay đổi chiều rộng hoặc chiều cao của Hình dạng nếu đó là SmartArtNode; điều stange duy nhất là, trong Excel chính nó bạn có thể thay đổi chiều rộng và chiều cao, vì vậy nó có vẻ lạ VBA không thể làm điều đó –

Trả lời

1

Như thế này?

Sub Macro1() 

Dim Sma As Shape 
Set Sma = ActiveSheet.Shapes.AddSmartArt(Application.SmartArtLayouts(2)) 

With Sma 
    .ScaleHeight 1.5, msoFalse, msoScaleFromBottomRight 
    .ScaleWidth 1.5, msoFalse, msoScaleFromTopLeft 
End With 

End Sub 
+0

Xin lỗi vì phản hồi muộn của tôi. Tuy nhiên, mã của bạn chỉ thay đổi kích thước của toàn bộ SmartArt. Tôi cũng đã cố gắng để thích ứng với nó, vì vậy nó chỉ áp dụng cho SmartArtNodes, nhưng điều này không làm việc. –

Các vấn đề liên quan