2013-07-16 27 views

Trả lời

7

Có hai loại hình dạng trong MS Word- InlineShapesShapes. Đó là khá dễ dàng để kiểm tra tên của đối tượng hình dạng với một số mã VBA:

  1. chọn hình dạng
  2. nhấn Alt + F11 để mở VBA biên tập
  3. trong cửa sổ Immediate thực thi mã này: ? Selection.ShapeRange.Name
  4. kết quả là bạn có tên của hình dạng.

InlineShape không có sở hữu tên do đó bạn không thể kiểm tra tên của nó cho đến khi bạn quảng bá loại đối tượng InlineShape-Shape của bạn.

+2

Cảm ơn. Ctrl + G mở cửa sổ ngay lập tức. – ftkg

+0

Tôi đang tìm cách để tham khảo hình dạng được chọn chủ động và điều này là hoàn hảo. Thanks @Kazimierz – MJA

3

Từ Microsoft Word 2010 trở đi (2010, 20132016) có một "Selection Pane" bao gồm trong Microsoft Word. Trên ngăn chọn, Microsoft Word InlineShapes cũng như Shapes được liệt kê và đặt tên.

Bạn có thể tìm thấy những "Selection Pane" trong menu dưới

  1. "Home" -tab
  2. "Chỉnh sửa" -group
  3. "Chọn" -button
  4. "Selection Pane. .. "
+1

Câu trả lời hay nhất trong toàn bộ chuỗi này :) –

0

Phương pháp tiện lợi nhất là tạo nút macro, có thể truy cập từ các tab của bạn (ví dụ: Trang chủ, Chèn, v.v.). Bằng cách này, bạn chỉ cần nhấp vào hình dạng, bấm vào nút vĩ mô, và thì đấy - tên hình dạng hiển thị trong một hộp thông báo (cửa sổ bật lên).

Sử dụng đoạn mã sau:

MsgBox ActiveWindow.Selection.ShapeRange(1).name 
+0

Mã đó có thể ném "Giá trị không nằm trong phạm vi dự kiến" – PandaWood

0

câu trả lời đúng, tôi hy vọng)))

For Each ILShp In Doc.InlineShapes 
    If ILShp.Type = 5 Then   ' 5 (wdInlineShapeOLEControlObject) - OLE control object. (ComboBox and CheckBox) 
     ' if object is ComboBox 
     If CStr(ILShp.OLEFormat.ClassType) = "Forms.ComboBox.1" Then 
      Cb_Name = ILShp.OLEFormat.Object.Name   ' retuns ComboBox1 
     endif 
    Next 
Các vấn đề liên quan