crop marks

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

  • this is what i want in each corner.

    If you already have something that creates thin black crop marks, then you might:

    1. Duplicate the crop marks.
    2. Apply a wide white outline to the duplicates just created.
    3. Move them behind the thin black crop marks.
  • 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 Double
    Dim mshape As Shape
    Set mshape = ActiveShape
    Mtopy = mshape.topy
    Mbottomy = mshape.BottomY
    Mleftx = mshape.LeftX
    Mrightx = mshape.RightX

    Set 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 = False
    mshape.Selected = True
    End 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 Frame
    Set MActiveControl = ActiveControl
    If MActiveControl.BackColor = vbWhite Then
    MActiveControl.BackColor = vbBlack
    ActivePage.Shapes("BhBp1").Outline.Color.RGBAssign 0, 0, 0
    Else
    MActiveControl.BackColor = vbWhite
    If MActiveControl.BackColor = vbWhite Then
    ActivePage.Shapes("BhBp1").Outline.Color.RGBAssign 255, 255, 255
    End If
    End If
    End 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!