Wie wählen Sie alle ActiveX-Objekte in einem Bereich mit einer Maus in Excel aus?

1276
enderland

Aufgrund dieses Problems bei der Änderung der Größe von ActiveX-Objekten gruppiere ich meine ActiveX-Objekte nicht in meinem Excel-Arbeitsblatt. Das Gruppieren von ihnen führt dazu, dass mein Lösungshack nicht funktioniert, was ziemlich ärgerlich ist.

Ich möchte jedoch oftmals in der Lage sein, im Wesentlichen die Maus zu verwenden, eine Region auszuwählen und dann alle in der Region enthaltenen ActiveX-Objekte auszuwählen. Dies ist auch hilfreich, wenn Sie Objekte einfach auswählen möchten, um sie anfänglich zu gruppieren.

Grundsätzlich gilt:

  • Mit der Maus den Bereich auswählen
  • Wählen Sie automatisch alle ActiveX-Komponenten in der Region aus

Ich bin gut mit einer VBA-Lösung, wenn nötig.

Wie kann ich das machen?

0
Wenn Sie ActiveX-Objekte, aber keine anderen Shapes in einem Arbeitsblatt haben, führen Sie eine Schleife über Shapes durch und überprüfen Sie jede TopLeftCell-Eigenschaft. Prüfen Sie, ob sich einer dieser Bereiche mit der Auswahl überschneidet. Wenn ja, fügen Sie diese Form einer Liste hinzu. Dann wählen Sie die Liste der Formen. Gary's Student vor 10 Jahren 0

1 Antwort auf die Frage

1
Gary's Student

Erwägen:

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 
Das ist großartig, ich hätte nie gedacht, Intersect so zu verwenden. Ziemlich leicht anpassbar, um auch alle Objekte zu erhalten. enderland vor 10 Jahren 0
Viel Spass damit! Gary's Student vor 10 Jahren 0