While making selection by drawing a selection window, the objects often get seelected and get dragged. These objects lie on the starting vertex of the selection window. Therefore I have to find the desired bjects to be selected in object manager lying in haphazard order. Is there a way , the objects don’t get dragged while making a selection window from left to right. That means, the objects get selected which are present in the selection window only.
Windows 7 [64-bit], Core i3 - 3.02 GHz, 4GB DDR 3 RAM
Hi rock1,
There are several tricks you can use to make selection easier.
Say you have the following graphic, and you only want to select the red objects
If you often need to select the shapes in the foreground, it may make sense to lock the blue object. But often this isn't the case so you can:
Alternatively, you can start a selection anywhere (without selecting the shape behind it) by first holding the alt key, then start the marquee selection by dragging with the left mouse, then before you let go of the left mouse, let go of the alt key.
Hendrik
Not sure if I am understanding your problem. If you mean there is no blank area to start your selection with out touching an object, you could try switching to wireframe view, hols down the Alt key and make your selection. Any object that the marquee touches will be selected rather than having to draw the box completely around them.
Hi.
Here's a fun little macro that will allow you to hover the mouse over the items and they will be selected.
Just press escape whenever you are finished. You will have to modify slightly for X6 64 bit.
~John
Option ExplicitPrivate Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As LongPublic Type lpPoint x As Long y As LongEnd TypeDeclare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerPublic Declare Function GetCursorPos Lib "user32" (ByRef pos As lpPoint) As BooleanSub hoverSelect()Dim s As ShapeDim p As lpPointDim x As Double, y As DoubleDim curX As Double, curY As Double, sr2 As New ShapeRange Do While GetAsyncKeyState(vbKeyEscape) = 0 DoEvents GetCursorPos p ActiveDocument.ActiveWindow.ScreenToDocument p.x, p.y, x, y If curX <> x Or curY <> y Then Set s = ActivePage.SelectShapesAtPoint(x, y, True) If s.Shapes.count > 0 Then sr2.AddRange s.Shapes.All End If ActiveDocument.ClearSelection End If Loop sr2.CreateSelectionEnd Sub
"The best thing about learning is that it never stops, and the rabbit hole will go as deep as you let it."~Johnwww.gdgmacros.com
Hendrik Wagenaar:While still holding the left mouse, hold the right mouse and drag. this will allow you to move the origin of the marquee selection
Hi Hendrix, this is a trick that I"ve never tried before. Thanks!
"An old dog learning new tricks" CDGS X6 under: Win 7 Ultimate 32 bits.
Blog: www.winmultimidia.blogspot.com - Site: www.winmultimidia.com.br
Silvio Win:Hi Hendrix, this is a trick that I"ve never tried before. Thanks!
Same here, that is a handy one!
Hi john sir
the macro is good, i am having corelx6 32 bit, after pressing escape the selection blinks and losing all the selections and it will not be holding the selections. please rectify this and its simply fantastic.
Besides want another macros with the same functionality except in the place selection, i want them groupwith selection, hover direct delete, hover direct color, hover direct extract from group.
thank you somuch and lots of love since you are great sir
thank q
thanks for the tip hendrik
and runflacruiser,
RunFlaCruiser: Hi. Here's a fun little macro that will allow you to hover the mouse over the items and they will be selected. Just press escape whenever you are finished. You will have to modify slightly for X6 64 bit. ~John Option ExplicitPrivate Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As LongPublic Type lpPoint x As Long y As LongEnd TypeDeclare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerPublic Declare Function GetCursorPos Lib "user32" (ByRef pos As lpPoint) As BooleanSub hoverSelect()Dim s As ShapeDim p As lpPointDim x As Double, y As DoubleDim curX As Double, curY As Double, sr2 As New ShapeRange Do While GetAsyncKeyState(vbKeyEscape) = 0 DoEvents GetCursorPos p ActiveDocument.ActiveWindow.ScreenToDocument p.x, p.y, x, y If curX <> x Or curY <> y Then Set s = ActivePage.SelectShapesAtPoint(x, y, True) If s.Shapes.count > 0 Then sr2.AddRange s.Shapes.All End If ActiveDocument.ClearSelection End If Loop sr2.CreateSelectionEnd Sub
how can i make this macro??