I am looking for a macro that will make crop marks with a white outline. the reason being if my black crop mark are on a black color i can see them. does anybody have code for this or an existing macro?
thanx
iradaboy said:this is what i want in each corner.
If you already have something that creates thin black crop marks, then you might:
.07 white and .21 black. thanx
thanks eskimo. thats what i have been doing but i would like it in one step if possible.
Hello, everybody
Let me share with you some practical ideas in the form of code.The code could certainly be better. The best thing is that this code can be made to suit practical needs as much as possible.
To achieve the result presented in the picture, we use a custom form /with a red button/.Pressing the red button places markers around the active shape.
In the form, only the red button and the controls attached to it are important. All other controls are operational and irrelevant to this task.
And here is the code for the red button:Dim Mtopy, Mleftx, Mrightx, Mbottomy As DoubleDim mshape As ShapeSet mshape = ActiveShapeMtopy = mshape.topyMbottomy = mshape.BottomYMleftx = mshape.LeftXMrightx = mshape.RightXSet MLINE8 = ActiveLayer.CreateLineSegment(Mleftx, Mtopy, Mleftx - tbLength.Text, Mtopy)MLINE8.Name = "BhBp8"Set MLINE1 = ActiveLayer.CreateLineSegment(Mleftx, Mtopy, Mleftx, Mtopy + tbLength.Text)MLINE1.Name = "BhBp1"Set MLINE2 = ActiveLayer.CreateLineSegment(Mrightx, Mtopy, Mrightx, Mtopy + tbLength.Text)MLINE2.Name = "BhBp2"Set MLINE3 = ActiveLayer.CreateLineSegment(Mrightx, Mtopy, Mrightx + tbLength.Text, Mtopy)MLINE3.Name = "BhBp3"Set MLINE4 = ActiveLayer.CreateLineSegment(Mrightx, Mbottomy, Mrightx + tbLength.Text, Mbottomy)MLINE4.Name = "BhBp4"Set MLINE5 = ActiveLayer.CreateLineSegment(Mrightx, Mbottomy, Mrightx, Mbottomy - tbLength.Text)MLINE5.Name = "BhBp5"Set MLINE6 = ActiveLayer.CreateLineSegment(Mleftx, Mbottomy, Mleftx, Mbottomy - tbLength.Text)MLINE6.Name = "BhBp6"Set MLINE7 = ActiveLayer.CreateLineSegment(Mleftx, Mbottomy, Mleftx - tbLength.Text, Mbottomy)MLINE7.Name = "BhBp7"ActiveShape.Selected = Falsemshape.Selected = TrueEnd Sub
The task of the above code is to make markers along the border of the active shape.
If any of the markers are found to be on a black background and not visible, the corresponding controls around the red button are clicked and the markers color changes from black to white.Each control around the red button has a code. Below is the code of the top left control.
The codes of the other controls are similar. The job of each of these controls is to alternately change the color of the markers from black to white and vice versa.Private Sub frTopLeft_Click()Dim MActiveControl As FrameSet MActiveControl = ActiveControlIf MActiveControl.BackColor = vbWhite ThenMActiveControl.BackColor = vbBlackActivePage.Shapes("BhBp1").Outline.Color.RGBAssign 0, 0, 0ElseMActiveControl.BackColor = vbWhiteIf MActiveControl.BackColor = vbWhite ThenActivePage.Shapes("BhBp1").Outline.Color.RGBAssign 255, 255, 255End IfEnd IfEnd sub
There are several interesting approaches in the code. I can't explain them in detail. The most interesting of these, I think, is the use of the Shape.Name
There are quite a few professionally made macros presented on the forum and on the Internet. Here is an attempt to peek into the kitchen and see how they work. This code has the advantage that, without having many functionalities, it can be adapted for the specific needs of each user. If the user has VBA knowledge, he can do the adaptation himself.
Any idea or question related to improving the above code and adding new functionalities,any comment will be gratefully received.
Greetings!
thanks bhbp.bg2 i will give this a go.