Как выделить все объекты ActiveX в области с помощью мыши в Excel?

1199
enderland

Из-за этой проблемы с изменением размера объектов ActiveX я не группирую свои объекты ActiveX на своем листе Excel. Группировка их приводит к тому, что мой взлом решения не работает, что довольно раздражает.

Однако я часто хочу иметь возможность по существу использовать мышь и выбирать область, а затем выбирать все объекты ActiveX, содержащиеся в этой области. Это также было бы полезно для простого выбора объектов для их первоначальной группировки.

В принципе:

  • Используйте мышь, чтобы выбрать область
  • Автоматический выбор всех компонентов ActiveX в регионе

Я в порядке с решением VBA, если это необходимо.

Как я могу это сделать?

0
Если у вас есть объекты ActiveX, но нет других фигур на листе, выполните цикл по фигурам, изучив каждое свойство TopLeftCell. Проверьте, пересекаются ли какие-либо из них с выбором. Если да, то добавьте эту фигуру в список. Затем выберите список фигур. Gary's Student 10 лет назад 0

1 ответ на вопрос

1
Gary's Student

Consider:

Sub ShapePicker() Dim sh As Shape, st As Variant, Llist As String Dim ty As String Dim nm As String Dim r As Range Dim ary As Variant For Each sh In ActiveSheet.Shapes ty = sh.Type nm = sh.name Set r = sh.TopLeftCell If ty = msoOLEControlObject Then If Not Intersect(r, Selection) Is Nothing Then If Llist = "" Then Llist = nm Else Llist = Llist & "," & nm End If End If End If Next sh ary = Split(Llist, ",") ActiveSheet.Shapes.Range((ary)).Select End Sub 
Это здорово, я никогда не думал использовать Intersect, как это. Довольно легко изменить, чтобы получить все объекты тоже. enderland 10 лет назад 0
Веселитесь с этим! Gary's Student 10 лет назад 0

Похожие вопросы