Text & Shading

We have the need to set up a form where we have what looks like white text on top of a shaded box.   However, our issue is that we are using a black & white Xerox printer.   Even if we check the "print in color" boxes, when we sent the print to the printer, it prints in Black.   We have tried getting around this by creating a xerox font (using the logo editor) that looks similar, but when the logo editor changed the black/white pattern of a bitmap to create the shaded effect of the logo, it lost quite a bit of quality.
Has anyone else experienced something similar, and how have you gotten around this?
Thanks,
Randy

When you only have black and white bitmaps, it's very difficult to create readable white text on a black and white pattern. You need to make the edges of the white text clearly distinct. The simplest method might be to get a hollow outline font to use and place the text using the hollow font on top of your shade. A hollow font would probably clear the black and white background around the text. That effect may or may not be a good compromise for you. There may be a good graphic editor (anyone have a suggestion?) that would allow you to do something similar without clearing the background beneath the text.

Similar Messages

  • In Acrobat 8 Professional, how can I change the typewriter text color?

    I tried selecting the text then pressing Ctrl-E but the text properties toolbar that appears says, "No current selection." I tried this method another user suggested:
    "1. Use the text box tool to type some text, then select the text
    2. Use the properties bar, ctrl-E, or View > Toolbars > Properties Bar, to change the color of the font
    3. Highlight the text, not the text box and copy the text.
    4. Click on the typewriter tool and type some text.
    5. Click on the comments menu and select "Show Comments List", in the comments list you should see the typewriter entry from step 4 above.
    6. Highlight the typewriter text in the comments window then paste the copied text from step 3 above.  It should paste with the color selected in the properties bar.
    7. Right click an area of the typewriter entry in the comments list, and choose properties.
    8. On the General tab check the "Make Properties Default" Check box and click OK.
    All new typewriter entries should now use this new font color. "
    But when I get to STEP #2 the text properties toolbar that appears has all the options to edit the text shaded so I cannot select the option to change the text color. Any help would be appreciated!

    There really aren't default outgoing font settings. They are only there for viewing. A workaround I have seen mentioned is to start you signature with the font style you want to use. When you start your message, click in that first part of your signature.
    Something like
    defaults
    Signature

  • All printing is shaded

    I just updated to os x v10.9.1 mavericks. Every document I print no matter what it is (PDF, Numbers, Word, Pages) has text shading.  When I open a document it looks fine but once I send to print it shows and prints with shadows...very strange. My printer is a HP Photosmart C4780 and I unistalled and reinstalled it twice.
    Anyone have any ideas. It might be something easy but I cant figure it out.

    Try resetting the printing system.
    Reset Printing System
    Have you checked to see if there is a new driver available.
    HP Support

  • Is there a way to create a heading with shading behind the text and thin lines above and below?

    I'm working with InDesign CS6, Windows 7.
    Is there a way, using paragraph rules, to create a heading with shading behind the text and thin lines above and below the text?
    I'd like to create headings that look like these:
    Thank you!

    I have a document where I almost do such, but without the fill. I use a Head Style which Spans Columns for this instance; it allows the haeds to flow and fill the width.
    Paragraph Rules above and below are turned on with plenty of offset.
    I tweaked my setting to accomodate your need - It required only one instance, not above and below, and changing the stroke to a double stroke. 
    It may be necessary to create a custom stroke to modify the proportion of stroke vs fill. There is a difference of thin-thin and  thick-thick, neither of which seemed perfect but might be dependent on the Character height.
    Creating custom strokes is accomplished via the Strokes Panel.

  • Red shading behind text

    I have G71 laptop 17" that is only 4 months old.  I am seeing very light red shading behind each letter in my text.  It appears wether i am on the web or in my email.  Would this be a video card issue?

    Actually a backlight issue is more likely but video card is not impossible. The way to tell is to hook it to an external monitor. If it still shows the red on an external monitor it is the video card. If the external is OK it is the backlight/display panel. Either way, HP should fix it under warranty.

  • Text background shading in FM 10

    I'm working on a textbook and we have a long example within a chapter that is about 2 pages long, however, the example flows over 3 pages (half on page 1,
    full page 2 and the remainder on the top of page 3). I would like to set the example apart from the actual chapter text by shading the background. Is there a way to do this where the shading stays with the example text so that if I make other changes in the chapter the shading moves with the example?

    If you put black text on a black background, then (depending upon  security settings in the PDF) you can still copy & paste the  "invisible" text.
    Security features won't help. PDF is simply not secure against  determined attackers. The only way to redact a PDF is for the text to  flat not be there.
    So AcroX has no new capabilities for K-on-K.
    The redaction route that gets one in trouble.
    As any number of hapless lawyers have discovered the hard way (that and Word metadata).
    Acrobat Pro (9 for sure, perhaps earlier) has a specific feature for white-on-white* text. It can remove the text entirely. The problem is that it leaves white space, making the reader wonder: did they redact, or just run out of pixels?. It might be preferrable to leave deliberate black boxes so that the redaction is prominent.
    However, leaving a series of black boxes, each representing the font extents of the redacted characters, is unwise. For starters, the reader knows exactly how many characters were redacted, and unless the font was changed for that text, they have a significant insight into the metrics. Reverse-engineering the exact text redacted might often require only a modest effort.
    So if AcroX were to implement KonK redact, it would have to replace the entire series of font rectangles with one long rectangle.
    Sounds like Acro hasn't even gotten to square one on that enhancement.
    * W-on-W redaction cautions: If the text and bg whites are different by even one bit, the text remains (RGB white on CMYK white is OK, however). If any part of a white character is over a bg element that is not 100.00% white, the entire character remains.

  • Text Background Shading

    In MS Word 2003 & similarly in 2007 I can easily use "Format | Borders and Shading" to quickly apply background shading to any selected text. This is extremely handy for emphasizing key phrases in certain types of sales documents. FrameMaker doesn't have an equivalent feature and I always hate having to revert back to MS Word when I need this feature.
    I have posted a 'Feature Request' and would like to invite as many of you as possible to do likewise to increase our prospects for eventually getting this feature. I always use paragraph & character styles and it would seem trivial for FrameMaker to add this feature with all the capabilities they already have. I currently use FM 8.04 and have been using FM for about 18 years and sure would like to see this feature in a future release. So can any of you help spread the word? Thanks.

    Thank you for this feature request.  This feature is also requested by us. It is important, however, that it is fully functional and supported for structured documents too. That means that there has to be a way to express Text Backgroud Shading via EDD Layout Rules (Text or Paragraph properties).
    None of the workarounds described above will work with structured documents.
    Frank Steimke

  • Para tag: White text against a shaded box

    Hi,
    Any ideas how to achieve this?
    I tried the one cell one column table route, but that flushes out the table to page 2 if anchor is at page 1.
    Any possibilities to use a thick line that is baseline shifted upwards in some way?
    Best wishes,
    Mats

    Well, you may want to check your table property settings, because that push isn't default behaviour -- something in your setup is pushing it, or its position could be at the bottom of a page. Could be table position, widow/orphan control, or row property settings, or something else.
    Second, yes, you can use a sequence of two tags to place a frame from the Reference page first and then text over it. I'd use Frame Below in the first tag, then a negative value in the space above of the second tag to place the text properly. It'll take some twiddling, but it'll work reliably once you have the tag team set up.
    Art

  • Highlighting text in a table cell

    Im trying to get text in a table have it background shaded a different colour to the rest of the table cell but it doesnt work. No exceptions are thrown does anyone have any idea.
    public Component getTableCellRendererComponent(JTable table,
            Object value,
            boolean isSelected,
            boolean hasFocus,
            int row,
            int column)
            setFont(table.getFont());     
            this.setText(value));
            this.selectAll();
            this.setSelectionColor(new Color(0,0,255,100);
            return this;
        }

    The answer is similar to what someone else asked recently for highlighting text in a JFormattedTextField cell.
    class MyFocusListener extends FocusAdapter
    public void focusGained(FocusEvent e)
    SwingUtilities.invokeLater(new Runnable()
    public void run()
    selectAll();
    Put that in your cell editor or its base class. You can change the color or whatever you want. I think the problem is a timing thing where normal focus processing is interrupting your changes. So give the focus processing time to run with this Runnable triggering your processing to occur on the Awt thread (as is proper) after the system is doing whatever it wants to do. Let us know if it works for you.

  • Photoshop: Making a text box with color or border.

    How do you fill a text box in Photoshop?
    Answer: You CAN’T.
    Solution:  You CAN do anything you want in Photoshop -we know it’s GREAT - but the steps are not always so easy.  See below for solutions to making it seem that the text box is filled with color, bordered, semi-tansparent etc.
    In Photoshop, a text box is mostly about the text inside and less about the box that surrounds it.  In other words, the box is always transparent and all effects apply to the font shapes typed inside by the user.  Photoshop (CS4) can produce incredible, professional, amazing text images. No Doubt About It!
    A Photoshop text box can display one of two types of bounding boxes: 
    Its OBJECT bounding box is there for moving the whole text layer, rotating it, duplicating it and distorting.  Clicking once on the text layer pallet and selecting the move tool (v) will produce this bounding box.  The direct selection tool (a) won’t recognize it.  Note:  If you try to resize the box as an object, it also distorts/stretches the text inside.  This can make cool effects but usually you want the text to stay the way the font was designed.  See: Layers>Type>Warp Text.
    The TEXT bounding box is there for highlighting, re-typing and selecting the margins of the actual text/paragraph etc.  Selecting the text tool and clicking over existing text will produce this bounding box.
    Some features are accessible in either mode.
    The Photoshop text tool has two types of cursors:
    The NEW text box cursor looks like a text insertion cursor (often seen in word processing) WITH a dotted box around it.
    To produce the new text box cursor just select the text tool and move over to a new work area.
    The EDIT text cursor looks very much like the ordinary cursor people are familiar with (no dotted box). 
    To produce the edit text tool, hover the text tool over EXISTING text and the cursor changes to the simple insertion shape (without the dotted box).  A click now will put you into text editing mode, not new text box mode.  This drove me batty for a while because I was used to clicking anywhere inside an existing text box and the blinking cursor would pop in automatically - usually at the end of the last letter.  This doesn’t happen in Photoshop; if that NEW text box tool is active, it will try to place a new box anywhere you click sometimes overlapping another.
    When in this mode (edit existing text) you can carefully hover the arrow to the edges of the text box and resize the bounding box without altering the shape of the text itself.  This is how you make the text box larger or smaller to fit/accommodate your needs.  You can also highlight text, insert between words/letters.  Highlighted text is available for changing its font, color, size, cutting/pasting etc. 
    To get OUT of the EDIT text mode, click the check box on the tool column above or type enter (not return) or type cmd-return (MAC), ctrl-return (WIN).  If you want to cancel any changes to an existing text box click the ex-circle on the tool column or press the esc key (top left of keyboard-escape key)
    OK, THE MAIN POINT:
    To make an effect that looks like a text box that is filled, bordered, semi-transparent etc., you will have to create an object shape (box) and place it just behind (under) the text box.  Linking the two allows you to move them around easily.  The drawback is that, when you need a larger box, you’ll have to alter the size of both boxes and possibly re-center them to each other (I know it’s sort of dumb to have so many steps just to get a shaded text box or bordered one.)
    Begin by selecting the Rectangle shape tool and draw a shape on the screen of any size.  In the layers pallet a layer is created with two items (layer thumbnail and vector mask) Double click the one on the left the layer thumbnail).  Change its color to a light one such as baby blue or yellow.
    Now select the text tool and click once over that shape.  A text box is created exactly the same size of the rectangle (any shape will work too).
    Type some text into that box and change the font type, size and color to something you might use regularly.  Check to see that the text color is black (can be changed later).  The text automatically wraps around when you reach the edge of this box and fits well (inside margins can be altered by pixel later).
    Now link the two boxes to one another.  Shift-click each layer in the layers pallet to select both and choose the link button at the bottom of the window for layers or go to Layers>Link Layers.  Now when you move one it will move the other too!
    Using the paragraph tools you can center text, indent first line, and add space between paragraphs.  Except the first paragraph seems too close to the top of the colored rectangle; doesn’t it?  Photoshop won’t add extra leading (horizontal space) between the text box and the top of the first paragraph.
    There are two ways to fix this:
    1.     Select the text tool and click inside the existing text then hover the pointer just above the little box/tab in the top center of that rectangle and bring it down just a bit.
    2.     Or you could unlink the two layers (to unlink just click link again while one of the two layers is selected in pallet) and move the colored rectangle up just a bit.
    In the first instance it was not necessary to unlink the boxes.  This is the advantage because altering the colored rectangle without unlinking will distort your text as will altering the text box if you are not in object text mode (see intro.)
    Ok, some advantages:
    Now that you have this set up you can use the background box (colored rectangle) to make other effects.  Select it as a separate layer but you won’t have to unlink it.  To make the box semi-transparent change either the layer OPACITY or the layer FILL (found in the layer pallet).
    To create a border box:
    1.     Select the colored rectangle box and under Layers>Styles>Blending Options (or just double click in an open area of the layer pallet for that shape.)
    2.     Select Stroke, change:  Fill Type color, Color black, Size 4, Position inside, Blend Mode normal, Opacity 100%. Click OK/Apply
    3.     Back in the layer pallet, change the Fill to 0% and you will just have a border with attached text box.  You may have to alter the inside text box again depending on the thickness of that border especially if you made the Position to be inside to keep the sharpness of the rectangle.
    4.     Yes this will work with other shapes and even custom shapes.  Remember to draw the shape first and immediately place a new text box over it BEFORE any other alteration is done.  This ensures that Photoshop creates a text box exactly the same size/dimension of your chosen shape.  It even makes margins fit irregular shapes like triangles.
    5.     Try it!

    Toxic Cumquat wrote:
    How do you fill a text box in Photoshop?
    Answer: You CAN’T.
    Solution:  You CAN do anything you want in Photoshop -we know it’s GREAT - but the steps are not always so easy.  See below for solutions to making it seem that the text box is filled with color, bordered, semi-tansparent etc.
    In Photoshop, a text box is mostly about the text inside and less about the box that surrounds it.  In other words, the box is always transparent and all effects apply to the font shapes typed inside by the user.  Photoshop (CS4) can produce incredible, professional, amazing text images. No Doubt About It!
    A Photoshop text box can display one of two types of bounding boxes: 
    Its OBJECT bounding box is there for moving the whole text layer, rotating it, duplicating it and distorting.  Clicking once on the text layer pallet and selecting the move tool (v) will produce this bounding box.  The direct selection tool (a) won’t recognize it.  Note:  If you try to resize the box as an object, it also distorts/stretches the text inside.  This can make cool effects but usually you want the text to stay the way the font was designed.  See: Layers>Type>Warp Text.
    The TEXT bounding box is there for highlighting, re-typing and selecting the margins of the actual text/paragraph etc.  Selecting the text tool and clicking over existing text will produce this bounding box.
    Some features are accessible in either mode.
    The Photoshop text tool has two types of cursors:
    The NEW text box cursor looks like a text insertion cursor (often seen in word processing) WITH a dotted box around it.
    To produce the new text box cursor just select the text tool and move over to a new work area.
    The EDIT text cursor looks very much like the ordinary cursor people are familiar with (no dotted box). 
    To produce the edit text tool, hover the text tool over EXISTING text and the cursor changes to the simple insertion shape (without the dotted box).  A click now will put you into text editing mode, not new text box mode.  This drove me batty for a while because I was used to clicking anywhere inside an existing text box and the blinking cursor would pop in automatically - usually at the end of the last letter.  This doesn’t happen in Photoshop; if that NEW text box tool is active, it will try to place a new box anywhere you click sometimes overlapping another.
    When in this mode (edit existing text) you can carefully hover the arrow to the edges of the text box and resize the bounding box without altering the shape of the text itself.  This is how you make the text box larger or smaller to fit/accommodate your needs.  You can also highlight text, insert between words/letters.  Highlighted text is available for changing its font, color, size, cutting/pasting etc. 
    To get OUT of the EDIT text mode, click the check box on the tool column above or type enter (not return) or type cmd-return (MAC), ctrl-return (WIN).  If you want to cancel any changes to an existing text box click the ex-circle on the tool column or press the esc key (top left of keyboard-escape key)
    OK, THE MAIN POINT:
    To make an effect that looks like a text box that is filled, bordered, semi-transparent etc., you will have to create an object shape (box) and place it just behind (under) the text box.  Linking the two allows you to move them around easily.  The drawback is that, when you need a larger box, you’ll have to alter the size of both boxes and possibly re-center them to each other (I know it’s sort of dumb to have so many steps just to get a shaded text box or bordered one.)
    Begin by selecting the Rectangle shape tool and draw a shape on the screen of any size.  In the layers pallet a layer is created with two items (layer thumbnail and vector mask) Double click the one on the left the layer thumbnail).  Change its color to a light one such as baby blue or yellow.
    Now select the text tool and click once over that shape.  A text box is created exactly the same size of the rectangle (any shape will work too).
    Type some text into that box and change the font type, size and color to something you might use regularly.  Check to see that the text color is black (can be changed later).  The text automatically wraps around when you reach the edge of this box and fits well (inside margins can be altered by pixel later).
    Now link the two boxes to one another.  Shift-click each layer in the layers pallet to select both and choose the link button at the bottom of the window for layers or go to Layers>Link Layers.  Now when you move one it will move the other too!
    Using the paragraph tools you can center text, indent first line, and add space between paragraphs.  Except the first paragraph seems too close to the top of the colored rectangle; doesn’t it?  Photoshop won’t add extra leading (horizontal space) between the text box and the top of the first paragraph.
    There are two ways to fix this:
    1.     Select the text tool and click inside the existing text then hover the pointer just above the little box/tab in the top center of that rectangle and bring it down just a bit.
    2.     Or you could unlink the two layers (to unlink just click link again while one of the two layers is selected in pallet) and move the colored rectangle up just a bit.
    In the first instance it was not necessary to unlink the boxes.  This is the advantage because altering the colored rectangle without unlinking will distort your text as will altering the text box if you are not in object text mode (see intro.)
    Ok, some advantages:
    Now that you have this set up you can use the background box (colored rectangle) to make other effects.  Select it as a separate layer but you won’t have to unlink it.  To make the box semi-transparent change either the layer OPACITY or the layer FILL (found in the layer pallet).
    To create a border box:
    1.     Select the colored rectangle box and under Layers>Styles>Blending Options (or just double click in an open area of the layer pallet for that shape.)
    2.     Select Stroke, change:  Fill Type color, Color black, Size 4, Position inside, Blend Mode normal, Opacity 100%. Click OK/Apply
    3.     Back in the layer pallet, change the Fill to 0% and you will just have a border with attached text box.  You may have to alter the inside text box again depending on the thickness of that border especially if you made the Position to be inside to keep the sharpness of the rectangle.
    4.     Yes this will work with other shapes and even custom shapes.  Remember to draw the shape first and immediately place a new text box over it BEFORE any other alteration is done.  This ensures that Photoshop creates a text box exactly the same size/dimension of your chosen shape.  It even makes margins fit irregular shapes like triangles.
    5.     Try it! Or try using Indesign!
    There. I fixed that for you.

  • How can I be sure iMessage is sending and receiving via WiFi and not using my text message allotment?

    My daughter has a new iPad Touch and I have a 3GS with 5.0.1. She wants to send and receive a million messages from me each day day with iMessage. Right now, I have Settings>Messages>Send As SMS - OFF. With this current setting, can I be assured I am using the WiFi only and not burning my SMS allotment from ATT? Am I safe to restore Send As SMS setting to ON? In other words, will the default method of transmission of text messages be through the internet, when that service is available?
    Without waiting for a $1000 bill from ATT for text messages, can I ensure I'm sending and receiving iMessages through the WiFi only?

    Well, I just noticed that a shaded iMessage appears in the enter text window when sending to her iPod Touch and my messages appear in a blue balloon, with her replies are in gray balloons. When sending to someone with another kind of phone, the text entry window says "Text Message" and my balloons are green. I guess this is an indication that the iMessage system is working and I'm not blowing through my SMS allotment from ATT.
    With these indications, can I be sure I'm messaging through the iMessage system, or the carrier's SMS service?

  • A way to fudge 3d objects/text

    I've kind of found a way of fudging some 3d objects, but it gets really render intensive as it is based on replicating the heck out of things. This also works with text.
    Let's say we start off with a circle we created in Motion. For this walkthrough I'm going to assume you just opened a new project and and are working with a layer whose Z position is zero. Hit replicate it and set it to be a 3D replicator with the 3D checkbox. Set the group it is contained in to be 3D, and change the replicator's shape type to "Line". Adjust the start and end points of the replicator so that all X and Y values are zero, the starting Z point is set to "-1", and the ending Z point is set to negative however deep you want the shape to be, minus one. You don't have to use -1 for the starting Z point, but it needs to be whatever the Z position of the original layer was minus one. Then set the number of points to be from 2-4 times the amount between your start and end points.
    Now we're going to add the shading. Show your original layer that you replicated, and go to the properties tab of it. Check the Drop Shadow checkbox, and set the color to black. The distance must be set to zero, the opacity should be roughly between 5 and 25 depending on how vivid of shadows you want, and I usually set the blur between 0.5 and 2.
    You can go back and adjust the color mode of the replicator to colorize if you want even more differentiation between the front and side faces. Try using the Scale and Scale End controls for distorting cylinders or rectangular prisms. Try thinking of things from different orientations. For example, I needed a 3D audio fader, which seemed impossible until I realized I was looking at it from the wrong angle, and then replicated it sideways instead. Try adding a back to the shapes too. This also works for replicating entire groups.
    Problems using this technique develop when you get closer to viewing the pseudo-3d object from a point that is in the same Z range as the layers are stacked in. As in, you can see through it and tell that its made up of stacked layers. This is less noticeable when you have more points in the replicator. The faked lighting is not really accurate to any lighting you set up, but it does give the 3D effect
    The replicators really start to add up fast as far as processing power, but I think Motion has some sort of glitch so that it can only handle so many layers, as instead of massive render times I started getting crashes and it started just ignoring them after I had about 1,500 or so replication points and layers. When working with those amounts of replications, its a good idea to keep Activity Monitor (in Applications/Utilities) open so you can tell if Motion has just stalled out and is refusing to render it, and isn't just thinking.
    Here are two examples of things I've used this on:
    http://img292.imageshack.us/img292/5201/fader3dci5.jpg
    http://img301.imageshack.us/img301/5708/cornerkickqd1.jpg
    I feel dirty just showing this because of how brute-force it is, but I hope it helps someone out. If anyone figures out a way to make it look more realistic, please share!
    Sorry if everyone knows this already, and for the massive post...
    -Max

    Yeup, exactly the same method using the replicator in my 3D text tutorial:-
    http://idustrialrevolution.com/content/blogsection/5/41/
    Peter

  • Is there a way to have the description field in a calendar list item to support enhanced rich text?

    We have a user who has a few hundred calendar items created in outlook. If you open the calendar item, the description includes tables with borders, shading, etc. It seems that the description field in Sharepoint calendars only support basic rich text,
    so if I copy the items from the user's calendar to the sharepoint calendar, the formatting is lost. Is there any way to create a custom calendar with enhanced rich text for the description field?

    This is a workaround that is working for us.  I created a new column "Event Description", selected "Plain Text" and then created a basic workflow that updated Description from Event Description.  #160 is no longer showing.
    Please be aware that the trick to this is that you must write everything in a string.  In other words, don't use the Enter key. 
    In my case it was worth it as we couldn't rebuild and the user needed a valid and quick fix.
    Cynthia Duke
    Cynthia Duke

  • Shading certain columns depending on start day of week.

    Good Afternoon,
    I have reason to edit the calendar wizard to make it completely automated.  And before anyone says that this isn't used anymore, we've received 2 separate calendar files over the last made from our Finance departments, each making them with Word calendar
    wizard highlighting year end dates.  So believe me, the calendar wizard is still very much in use!
    Last September, I finally figured out how to automate the first day of the week, though.  I have 2 templates now, one for Monday as first day and one for Sunday being the first day of the week.
    The only thing missing is to automate the shading so that the columns for Saturday and Sunday are shaded with light grey, and since it's automation we're talking about, only those cells in the columns with a number in them.
    I know it's do-able, I'm just not a vb expert, only being able to handle editing simple macros.
    But I understand that since I had some help with the macros and they might have changed from the original to some degree, that I should post the code.  Is this correct?  I hope that it is.
    ' WORD 97 WIZARD
    ' Calendar Wizard Specific Code
    Option Explicit
    ' CONSTANT DECLARATIONS
    '=============================== LOCALIZATION BLOCK ===============================
    ' Localization Note: iWeekStartDay is the starting day of the week (Sun = 0, Mon = 1, ...Sat = 6)
    Public Const iWeekStartDay As Integer = 1
    ' Banter strings
    Public Const strWarnYearReq As String = "Both starting and ending years are required."
    Public Const strWarnMinExceeded As String = "The year can not be before 1900."
    Public Const strWarnMaxExceeded As String = "The year can not be after 4095."
    Public Const strWarnRangeExceeded As String = "The calendar is limited to 120 months (10 years)."
    Public Const strAppCaptionPart1 As String = "Calendar: "
    Public Const strAppCaptionPart1b As String = ""
    Public Const strAppCaptionPart2 As String = ", "
    Public Const strAppCaptionPart3 As String = " to "
    Public Const strAppCaptionPart4 As String = ", "
    ' Status messages
    Public Const strStatusIntro As String = "Creating Calendar..."
    Public Const strStatusPart1 As String = "Creating "
    Public Const strStatusPart2 As String = ", "
    Public Const strStatusPart3 As String = "..."
    ' Assistant
    Public Const strCallBackHeading As String = "Do more with the calendar?"
    'Margins for A4 size (if wizard changes pagesize to A4)
    Public Const sA4_SHORT_MARGIN As Single = 28.8
    Public Const sA4_LONG_MARGIN As Single = 57.6
    'Margins for Letter size (if wizard changes pagesize to Letter) in pts
    Public Const sLETTER_SHORT_MARGIN As Single = 36
    Public Const sLETTER_LONG_MARGIN As Single = 36
    '========== END LOCALIZATION BLOCK - DO NOT MAKE CHANGES BELOW THIS LINE ==========
    Public Const iYearMin As Integer = 1900
    Public Const iYearMax As Integer = 4095
    ' Bookmark Names - DO NOT LOCALIZE
    ' Note: No spaces allowed in bookmark names
    Public Const strBkMkMonth As String = "Month"
    Public Const strBkMkDays As String = "Days"
    Public Const strBkMkDayNames As String = "DayNames"
    Public Const strBkMkYear As String = "Year"
    ' Calendar Style Names and Constants
    Public Const wzBOXES As Integer = 0
    Public Const wzBANNER As Integer = 1
    Public Const wzJAZZY As Integer = 2
    ' Form Control
    Public Const wzPAGE_START As Integer = 0
    Public Const wzPAGE_STYLE As Integer = 1
    Public Const wzPAGE_DIRECTION As Integer = 2
    Public Const wzPAGE_MONTHS As Integer = 3
    Public Const wzPAGE_FINISH As Integer = 4
    'orientation
    Public Const iORTN_PORTRAIT As Integer = 0
    Public Const iORTN_LANDSCAPE As Integer = 1
    ' Assistant
    Public Const iMAX_PANEL As Integer = 4 ' Number of last panel in MultiPage (First=0)
    Public Const iCALL_BACK_COUNT As Integer = 3 ' Number of items in CallBackBalloon (First=1)
    'postwizard balloon document variable
    Public Const strPOST_WIZ_BLN As String = "Calendar post wizard balloon"
    ' VARIABLE DECLARATIONS
    ' General
    Public rgstrMonthName(11) As String
    Public rgstrDayName(6) As String
    Public rgiDaysInMonth(11) As String
    Public fDateError As Boolean
    Public fCheckValidity As Boolean 'if set then the dates are checked for validity
    'variables used in doc. creation
    Public str1_TO_28 As String
    Public rgsDaysHeight(2, 1, 1) As Single
    Public rgsMonthNamesHeight(2, 1, 1) As Single
    Public rgstrDaysStyle(2) As String
    Public rgstrMonthNamesStyle(2) As String
    Public strSTY_BANNER_HDG3 As String
    ' Assistant
    Public rgstrAssistantMsg(iMAX_PANEL + 1) As String
    Public rgstrCallBackMsg(iCALL_BACK_COUNT) As String
    Public rgstrCallBackTip(iCALL_BACK_COUNT) As String
    ' Page 1
    Public iCalendarStyle As Integer
    Public iSavedStyle As Integer
    ' Page 2
    ' Page 3
    ' Page 4
    Public Sub InitWizardName(fDummy As Boolean)
    strWizName = "Calendar Wizard"
    strWizLongName = strWizName
    strWizShortName = "Calendar"
    End Sub
    Public Sub InitWizardStrings(fDummy As Boolean)
    Dim i As Integer
    On Error GoTo FatalError
    '=============================== LOCALIZATION BLOCK ===============================
    ' Note: this list is indexed 0 - iMAX_PANEL
    rgstrAssistantMsg(0) = "The Calendar Wizard helps you create a monthly calendar that you can customize with pictures and events. If you want to track and be reminded of events, you should probably use Microsoft Outlook, Microsoft Schedule+, or Microsoft Exchange."
    rgstrAssistantMsg(1) = "Select the look you want for your calendar. The Jazzy style uses the Algerian font. If it is not installed on your system, copy alger.ttf from the Valupack folder on the Microsoft Office CD to your hard drive."
    rgstrAssistantMsg(2) = "If you leave room for a picture, Word will insert a placeholder picture that you can replace with any picture you want."
    rgstrAssistantMsg(3) = "Your calendar can start on any month, and you can make your calendar shorter than or longer than 12 months. Each month will appear on a different page."
    rgstrAssistantMsg(4) = "To change any settings, click Back."
    ' Note: change constant iCALL_BACK_COUNT if number of items in list changes
    rgstrCallBackMsg(0) = "Add, remove, or replace a picture"
    rgstrCallBackMsg(1) = "Enter information into the calendar"
    rgstrCallBackMsg(2) = "Get Help on Something Else..."
    rgstrCallBackTip(0) = "To remove a picture, click on it and then press Delete. To add a picture, click where you want to insert the picture, point to Picture on the Insert menu, and then click From File."
    rgstrCallBackTip(1) = "To enter information, click where you want to insert the text and start typing. To move between different dates in the calendar, press Tab to move forward or press Shift+Tab to move to the previous date."
    'Load Month Name array
    rgstrMonthName(0) = "January"
    rgstrMonthName(1) = "February"
    rgstrMonthName(2) = "March"
    rgstrMonthName(3) = "April"
    rgstrMonthName(4) = "May"
    rgstrMonthName(5) = "June"
    rgstrMonthName(6) = "July"
    rgstrMonthName(7) = "August"
    rgstrMonthName(8) = "September"
    rgstrMonthName(9) = "October"
    rgstrMonthName(10) = "November"
    rgstrMonthName(11) = "December"
    'Load Day Name array LOCALIZATION NOTE: DO NOT CHANGE THE ORDER IN WHICH THESE APPEAR!
    ' TO CHANGE THE WEEK START DAY, CHANGE THE CONSTANT iWeekStartDay
    rgstrDayName(0) = "Sun"
    rgstrDayName(1) = "Mon"
    rgstrDayName(2) = "Tue"
    rgstrDayName(3) = "Wed"
    rgstrDayName(4) = "Thu"
    rgstrDayName(5) = "Fri"
    rgstrDayName(6) = "Sat"
    'Load Days In Month array
    rgiDaysInMonth(0) = 31
    rgiDaysInMonth(1) = 28 'Will not be used - must be calculated for leap year accuracy
    rgiDaysInMonth(2) = 31
    rgiDaysInMonth(3) = 30
    rgiDaysInMonth(4) = 31
    rgiDaysInMonth(5) = 30
    rgiDaysInMonth(6) = 31
    rgiDaysInMonth(7) = 31
    rgiDaysInMonth(8) = 30
    rgiDaysInMonth(9) = 31
    rgiDaysInMonth(10) = 30
    rgiDaysInMonth(11) = 31
    rgstrDaysStyle(wzBOXES) = "Boxes"
    rgstrDaysStyle(wzBANNER) = "Banner"
    rgstrDaysStyle(wzJAZZY) = "Jazzy"
    rgstrMonthNamesStyle(wzBOXES) = "Boxes Heading2"
    rgstrMonthNamesStyle(wzBANNER) = "Banner Heading2"
    'we dont set the style for month names in Jazzy style
    'the Banner style landscape calendar with picture uses Banner Heading3 style for month names
    strSTY_BANNER_HDG3 = "Banner Heading3"
    rgsMonthNamesHeight(wzBOXES, iORTN_PORTRAIT, 0) = 55
    rgsMonthNamesHeight(wzBOXES, iORTN_PORTRAIT, 1) = 55
    rgsMonthNamesHeight(wzBOXES, iORTN_LANDSCAPE, 0) = 36
    rgsMonthNamesHeight(wzBOXES, iORTN_LANDSCAPE, 1) = 36
    rgsDaysHeight(wzBOXES, iORTN_PORTRAIT, 0) = 56
    rgsDaysHeight(wzBOXES, iORTN_PORTRAIT, 1) = 102
    rgsDaysHeight(wzBOXES, iORTN_LANDSCAPE, 0) = 72
    rgsDaysHeight(wzBOXES, iORTN_LANDSCAPE, 1) = 71
    rgsMonthNamesHeight(wzBANNER, iORTN_PORTRAIT, 0) = 60
    rgsMonthNamesHeight(wzBANNER, iORTN_PORTRAIT, 1) = 60
    rgsMonthNamesHeight(wzBANNER, iORTN_LANDSCAPE, 0) = 55
    rgsMonthNamesHeight(wzBANNER, iORTN_LANDSCAPE, 1) = 51
    rgsDaysHeight(wzBANNER, iORTN_PORTRAIT, 0) = 64
    rgsDaysHeight(wzBANNER, iORTN_PORTRAIT, 1) = 110
    rgsDaysHeight(wzBANNER, iORTN_LANDSCAPE, 0) = 81
    rgsDaysHeight(wzBANNER, iORTN_LANDSCAPE, 1) = 81
    rgsMonthNamesHeight(wzJAZZY, iORTN_PORTRAIT, 0) = 73
    rgsMonthNamesHeight(wzJAZZY, iORTN_PORTRAIT, 1) = 73
    rgsMonthNamesHeight(wzJAZZY, iORTN_LANDSCAPE, 0) = 62
    rgsMonthNamesHeight(wzJAZZY, iORTN_LANDSCAPE, 1) = 59
    rgsDaysHeight(wzJAZZY, iORTN_PORTRAIT, 0) = 40.5
    rgsDaysHeight(wzJAZZY, iORTN_PORTRAIT, 1) = 81.8
    rgsDaysHeight(wzJAZZY, iORTN_LANDSCAPE, 0) = 58.2
    rgsDaysHeight(wzJAZZY, iORTN_LANDSCAPE, 1) = 57.5
    str1_TO_28 = ""
    For i = 1 To 28
    str1_TO_28 = str1_TO_28 & CStr(i) & vbTab
    Next i
    'strip off last tab
    str1_TO_28 = Left$(str1_TO_28, Len(str1_TO_28) - 1)
    ' Location in registry DO NOT LOCALIZE
    strRegSettingsKey = strREG_SETTINGS_BASE_KEY & "Calendar Wizard"
    Exit Sub
    FatalError:
    ReportError Err
    End Sub ' InitWizardStrings
    Public Sub InitWizard(fDummy As Boolean)
    ' Global Vars
    fWizardCallBack = False
    fDateError = False
    iCurrentPanel = 0
    ' Initialize strings
    InitWizardStrings (True)
    ' Create a new instance of the form
    Set formWizard = New formWizDlg
    If formWizard Is Nothing Then GoTo FatalError
    formWizard.lblWizName1.Caption = " " & strWizLongName & " "
    Exit Sub
    FatalError:
    DisplayErrorMsg strERR_INIT_FORM
    ReportError Err
    End Sub
    ' fDummy prevents sub from appearing in Word Tools/Macro list
    Public Sub SaveDialogValues(fDummy As Boolean)
    On Error GoTo FatalError
    ' Display status
    Application.ScreenUpdating = False
    System.Cursor = wdCursorWait
    StatusBar = strSAVE_SETTINGS
    ' Assistant
    System.PrivateProfileString("", strREG_SETTINGS_BASE_KEY, strREG_ASSISTANT_TIME_STAMP) = Format$(Now, "General Date")
    StoreValPref strREG_ASSISTANT_HELP, iLocalState
    ' Page 1
    StoreValPref "iCalendarStyle", iCalendarStyle
    ' Page 2
    StoreValPref "optPortrait", formWizard.optPortrait.Value
    StoreValPref "optPictureYes", formWizard.optPictureYes.Value
    ' Page 3
    StatusBar = ""
    System.Cursor = wdCursorNormal
    fSettingsSaved = True
    Application.ScreenUpdating = True
    Exit Sub
    FatalError:
    ReportError Err
    End Sub
    Public Sub RestoreDialogValues(fDummy As Boolean)
    Dim i As Integer
    On Error GoTo FatalError
    ' Display status
    Application.ScreenUpdating = False
    StatusBar = strRST_SETTINGS
    System.Cursor = wdCursorWait
    ' Page 1
    iCalendarStyle = IRestorePref("iCalendarStyle", 0)
    Select Case iCalendarStyle
    Case wzBOXES
    formWizard.optBoxes.Value = True
    formWizard.shpShadowBoxes.Visible = True
    Case wzBANNER
    formWizard.optBanner.Value = True
    formWizard.shpShadowBanner.Visible = True
    Case wzJAZZY
    formWizard.optJazzy.Value = True
    formWizard.shpShadowJazzy.Visible = True
    Case Else
    iCalendarStyle = wzBOXES
    formWizard.optBoxes.Value = True
    formWizard.shpShadowBoxes.Visible = True
    End Select
    ' Page 2
    If FRestorePref("optPortrait", False) Then
    formWizard.optPortrait.Value = True
    formWizard.shpPortraitShadow.Visible = True
    formWizard.shpLandscapeShadow.Visible = False
    Else
    formWizard.optLandscape.Value = True
    formWizard.shpPortraitShadow.Visible = False
    formWizard.shpLandscapeShadow.Visible = True
    End If
    formWizard.optPictureYes.Value = FRestorePref("optPictureYes", False)
    ' Page 3
    formWizard.cboMonthStart.ListIndex = Month(Date) - 1
    formWizard.cboMonthEnd.ListIndex = Month(Date) - 1
    formWizard.txtYearStart = Year(Date)
    formWizard.txtYearEnd = Year(Date)
    fCheckValidity = False
    StatusBar = ""
    System.Cursor = wdCursorNormal
    fSettingsRestored = True
    Application.ScreenUpdating = True
    Exit Sub
    FatalError:
    ReportError Err
    Exit Sub
    End Sub ' RestoreDialogValues
    ' fDummy prevents sub from appearing in Word Tools/Macro list
    Public Sub CreateNewDoc(fDummy As Boolean)
    Dim iMonthCurr As Integer
    Dim iYearCurr As Integer
    Dim lYearMonthCurr As Long
    Dim lYearMonthEnd As Long
    Dim iDaysCnt As Integer
    Dim iDaysInMonth As Integer
    Dim iCnt As Integer
    Dim strAutoTextName As String
    Dim objTableDays As Table
    Dim iRow As Integer
    Dim iCol As Integer
    Dim ocboMonthStart As ComboBox
    Dim ocboMonthEnd As ComboBox
    Dim otxtYearStart As TextBox
    Dim otxtYearEnd As TextBox
    Dim strJazzyDayNames As String
    Dim objFps As PageSetup
    Dim objRng As Range
    Dim sShortMargin As Single
    Dim sLongMargin As Single
    Dim strCaptionTxt As String
    Dim iOrientation As Integer
    Dim iNoPicture As Integer
    Dim i As Integer
    Dim strDays As String
    On Error GoTo CreateNewDoc_Error
    System.Cursor = wdCursorWait
    Set ocboMonthStart = formWizard.cboMonthStart
    Set ocboMonthEnd = formWizard.cboMonthEnd
    Set otxtYearStart = formWizard.txtYearStart
    Set otxtYearEnd = formWizard.txtYearEnd
    With Application
    .ScreenUpdating = False
    .StatusBar = strStatusIntro
    End With
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    If (formWizard.optPortrait) Then
    iOrientation = iORTN_PORTRAIT
    Else
    iOrientation = iORTN_LANDSCAPE
    End If
    iNoPicture = Abs(formWizard.optPictureNo.Value)
    'the margins have to be changed if papersize was changed in Common
    If (fChangeToA4 Or fChangeToLetter) Then
    Set objFps = ActiveDocument.PageSetup
    If iOrientation = iORTN_LANDSCAPE Then
    objFps.Orientation = wdOrientLandscape 'setting paper size in common
    'resets orientation to Portrait
    If fChangeToA4 Then
    sShortMargin = sA4_SHORT_MARGIN
    sLongMargin = sA4_LONG_MARGIN
    Else
    sShortMargin = sLETTER_SHORT_MARGIN
    sLongMargin = sLETTER_LONG_MARGIN
    End If
    Else
    If fChangeToA4 Then
    sShortMargin = sA4_LONG_MARGIN
    sLongMargin = sA4_SHORT_MARGIN
    Else
    sShortMargin = sLETTER_LONG_MARGIN
    sLongMargin = sLETTER_SHORT_MARGIN
    End If
    End If
    With objFps
    .TopMargin = sShortMargin
    .BottomMargin = sShortMargin
    .LeftMargin = sLongMargin
    .RightMargin = sLongMargin
    End With
    End If
    strAutoTextName = StrBuildAutoTextName(True)
    objWizTemplate.AutoTextEntries(strAutoTextName).Insert objActiveRange, True
    If iCalendarStyle <> wzJAZZY Then
    Set objActiveRange = ActiveDocument.Bookmarks(strBkMkDays).Range
    Else
    Set objActiveRange = ActiveDocument.Bookmarks(strBkMkDayNames).Range
    End If
    strJazzyDayNames = ""
    For iCnt = iWeekStartDay To 6
    strJazzyDayNames = strJazzyDayNames & rgstrDayName(iCnt) & vbTab
    Next
    For iCnt = 0 To (iWeekStartDay - 1)
    strJazzyDayNames = strJazzyDayNames & rgstrDayName(iCnt) & vbTab
    Next
    'Strip trailing Tab
    strJazzyDayNames = Left$(strJazzyDayNames, Len(strJazzyDayNames) - 1)
    objActiveRange.Text = strJazzyDayNames
    If iCalendarStyle <> wzJAZZY Then
    If (iCalendarStyle = wzBANNER) And (iOrientation = iORTN_LANDSCAPE) And (iNoPicture = 0) Then
    objActiveRange.Style = strSTY_BANNER_HDG3
    Else
    objActiveRange.Style = rgstrMonthNamesStyle(iCalendarStyle)
    End If
    objActiveRange.Select
    Selection.ConvertToTable wdSeparateByTabs, 1, 7
    End If
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Copy
    iMonthCurr = CInt(ocboMonthStart.ListIndex) + 1
    iYearCurr = CInt(otxtYearStart.Text)
    lYearMonthCurr = (CLng(iYearCurr) * 100) + CLng(iMonthCurr)
    lYearMonthEnd = (CLng(otxtYearEnd.Text) * 100) + (CLng(ocboMonthEnd.ListIndex) + 1)
    'Create each month of the calendar
    Do Until lYearMonthCurr > lYearMonthEnd
    Application.StatusBar = strStatusPart1 & rgstrMonthName(iMonthCurr - 1) & strStatusPart2 & CStr(iYearCurr) & strStatusPart3
    'Set month
    If iCalendarStyle = wzJAZZY Then
    ActiveDocument.Bookmarks(strBkMkMonth).Range.Text = CStr(iMonthCurr)
    Else
    ActiveDocument.Bookmarks(strBkMkMonth).Range.Text = rgstrMonthName(iMonthCurr - 1)
    End If
    'Set year
    ActiveDocument.Bookmarks(strBkMkYear).Range.Text = CStr(iYearCurr)
    'Determine number of days in month
    If iMonthCurr = 2 Then
    iDaysInMonth = DateSerial(iYearCurr, 3, 1) - DateSerial(iYearCurr, 2, 1)
    Else
    iDaysInMonth = rgiDaysInMonth(iMonthCurr - 1)
    End If
    'Set Column of First Day Of Month by using Weekday function. The 8th
    'is used (to start with) instead of the 1st to allow for offsetting (via
    'iWeekStartDay) for localization since the 8th will always fall on the
    'same day (of the week) as the 1st.
    iCol = WeekDay(DateSerial(iYearCurr, iMonthCurr, 8 - iWeekStartDay))
    ActiveDocument.Bookmarks(strBkMkDays).Select
    If iCalendarStyle <> wzJAZZY Then _
    Selection.MoveDown wdLine 'the bookmark is now in the first cell of the table
    strDays = ""
    For i = 1 To iCol - 1
    strDays = strDays & vbTab
    Next i
    strDays = strDays & str1_TO_28
    For i = 29 To iDaysInMonth
    strDays = strDays & vbTab & CStr(i)
    Next i
    'to get a 6 * 7 table always
    For i = iDaysInMonth + iCol - 1 To 41
    strDays = strDays & vbTab
    Next i
    Set objActiveRange = Selection.Range
    objActiveRange.Text = strDays
    objActiveRange.Style = rgstrDaysStyle(iCalendarStyle) & iOrientation & iNoPicture
    objActiveRange.Select
    Selection.ConvertToTable wdSeparateByTabs, 6, 7
    Selection.Cells.Height = rgsDaysHeight(iCalendarStyle, iOrientation, iNoPicture)
    Selection.Tables(1).Rows(1).Height = rgsMonthNamesHeight(iCalendarStyle, iOrientation, iNoPicture)
    '========================================================
    ' Mn.Sept.01.2014; 08h21
    ' TABLE GRIDLINES CODE: Automatically creates printable gridlines in the table.
    With Selection.Tables(1).Borders
    .InsideLineStyle = wdLineStyleSingle
    .InsideLineWidth = wdLineWidth100pt
    .InsideColorIndex = wdAuto
    .OutsideLineStyle = wdLineStyleSingle
    .OutsideLineWidth = wdLineWidth100pt
    End With
    '========================================================
    ActiveDocument.Bookmarks(strBkMkDays).Delete
    'Advance the current month
    If iMonthCurr = 12 Then
    iMonthCurr = 1
    iYearCurr = iYearCurr + 1
    Else
    iMonthCurr = iMonthCurr + 1
    End If
    lYearMonthCurr = (CLng(iYearCurr) * 100) + CLng(iMonthCurr)
    If lYearMonthCurr <= lYearMonthEnd Then
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    'Insert Page Break
    objActiveRange.InsertBreak wdPageBreak
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    objActiveRange.Paste
    End If
    Loop
    Application.StatusBar = ""
    strCaptionTxt = ""
    'Set Application caption
    strCaptionTxt = " - " & strAppCaptionPart1 & strAppCaptionPart1b & ocboMonthStart.Text & strAppCaptionPart2 & otxtYearStart.Text & strAppCaptionPart3 & ocboMonthEnd.Text & strAppCaptionPart4 & otxtYearEnd.Text
    ActiveDocument.UndoClear
    With ActiveWindow
    .Caption = .Caption & strCaptionTxt
    With .View
    .TableGridlines = False
    .ShowDrawings = True
    End With
    End With
    'Position cursor at the top
    Selection.HomeKey wdStory
    CreateNewDoc_Exit:
    Exit Sub
    CreateNewDoc_Error:
    ReportError Err
    GoTo CreateNewDoc_Exit
    End Sub ' CreateNewDoc
    Public Sub InitCallBack(fDummy As Boolean)
    Dim i As Integer
    Dim objCallBackLabels As BalloonLabels
    On Error GoTo ErrorCallBack
    If Not (fBlnInitialized) Then
    Set objPostWizBln = Assistant.NewBalloon
    fBlnInitialized = True
    With objPostWizBln
    .Heading = strCallBackHeading
    .Mode = msoModeModeless
    .Button = msoButtonSetCancel
    .BalloonType = msoBalloonTypeButtons
    .Callback = "Calendar.fnCallBack"
    End With
    Set objCallBackLabels = objPostWizBln.Labels
    objCallBackLabels.Count = iCALL_BACK_COUNT
    For i = 1 To iCALL_BACK_COUNT
    objCallBackLabels.Item(i).Text = rgstrCallBackMsg(i - 1)
    Next i
    End If
    objPostWizBln.Show
    If (Assistant.BalloonError) Then GoTo ErrorCallBack
    fPostWizBlnOpen = True
    Set objDocBln = ActiveDocument
    Set clsBln.app = Application
    ActiveDocument.Variables.Add strPOST_WIZ_BLN, "1"
    Exit Sub
    ErrorCallBack:
    DisplayErrorMsg strERR_INIT_CALL_BACK
    fPostWizBlnOpen = False
    Set objDocBln = ActiveDocument
    Set clsBln.app = Application
    ActiveDocument.Variables.Add strPOST_WIZ_BLN, "0"
    End Sub
    Public Function fnCallBack(objBln As Balloon, iBtn As Integer, lPrivate As Long)
    On Error GoTo ErrorCallBack
    Select Case iBtn
    Case Is < 1 'Exit
    objBln.Close
    fPostWizBlnOpen = False
    ActiveDocument.Variables(strPOST_WIZ_BLN).Value = "0"
    RestoreAssistant (True)
    Case 1 'Remove existing picture
    DisplayTip rgstrCallBackTip(0)
    Case 2 'Enter information into calendar
    DisplayTip rgstrCallBackTip(1)
    Case 3 ' Get help
    Assistant.Help
    End Select
    Exit Function
    ErrorCallBack:
    DisplayErrorMsg Err.Description
    End Function
    Private Function StrBuildAutoTextName(fDummy As Boolean) As String
    Dim strATName As String
    On Error GoTo BuildAutoTextName_Error
    'Select base AutoText Name NOTE: DO NOT LOCALIZE
    Select Case iCalendarStyle
    Case wzBOXES
    strATName = "Boxes"
    Case wzBANNER
    strATName = "Banner"
    Case wzJAZZY
    strATName = "Jazzy"
    End Select
    strATName = strATName & CStr(Abs(formWizard.optLandscape.Value))
    strATName = strATName & CStr(Abs(formWizard.optPictureNo.Value))
    StrBuildAutoTextName = strATName
    BuildAutoTextName_Exit:
    Exit Function
    BuildAutoTextName_Error:
    StrBuildAutoTextName = ""
    Resume BuildAutoTextName_Exit
    End Function
    'displays a tip during post-wizard options
    'assumes that Assistant is present since it is called from post-wizard balloon
    Private Sub DisplayTip(strTip As String)
    Dim objBlnTip As Balloon
    On Error GoTo FatalError
    Set objBlnTip = Assistant.NewBalloon
    With objBlnTip
    .Mode = msoModeModal
    .Heading = strWizName
    .Text = strTip
    .Button = msoButtonSetOK
    End With
    objBlnTip.Show
    If Assistant.BalloonError <> msoBalloonErrorNone Then GoTo FatalError
    Exit Sub
    FatalError:
    Err.Clear
    End Sub
    The above is from the module labelled "Calendar".  I don't believe anything was altered in the module labelled "Common", but please let me know that I should post it.
    To recap, in this wizard file, the first day of the week is set for Monday.  So the Saturday and Sunday columns always fall as the last 2 columns in the calendar table (Sunday as first day has the 1st and last column as the ones that would need shading).
    How can that syntax be added to shade the last 2 columns in the Monday calendar wizard, and the 1st and last column for the Sunday calendar wizard and hopefully shading just those particular cells in either with numbers in them?
    Thank you!  Very much appreciated. 

    Thanks, Doug!  Works beautifully.  I tried them again this morning, really incredible!
    I'm going to keep the Monday and Sunday wizard files as separate files because I realized that I don't have the skills (or the time) to try to figure out how to modify it so the user is requested the starting day.  It'll be beyond my meager skills,
    I'm sure, especially since there are all those dialogue boxes to contend with at the wizard's start.  I was forgetting about those.  So leaving these as 2 separate files where one chooses the starting day as per the title, the Monday one for Monday
    and the other, the Sunday one, for a Sunday start day.
    However, the only difference between them at this point is that one has a "0" for Sunday and the other a "1" for Monday, at the appropriate spots in the code.  being the starting week day and the other a "1" for Monday. 
    That's it.  They're beautifully the same in the rest of the code.  And a further benefit is that only one module was touched at all for all of this, the Calendar module (leaving the one labelled "Common" untouched.
    So anyone with a calendar wizard file can just change the piece of code below (begging the group's indulgence, if I may, in posting the modified code (??):
    ' WORD 97 WIZARD
    ' Calendar Wizard Specific Code
    Option Explicit
    ' CONSTANT DECLARATIONS
    '=============================== LOCALIZATION BLOCK ===============================
    ' Localization Note: iWeekStartDay is the starting day of the week (Sun = 0, Mon = 1, ...Sat = 6)
    Public Const iWeekStartDay As Integer = 1
    ' Banter strings
    Public Const strWarnYearReq As String = "Both starting and ending years are required."
    Public Const strWarnMinExceeded As String = "The year can not be before 1900."
    Public Const strWarnMaxExceeded As String = "The year can not be after 4095."
    Public Const strWarnRangeExceeded As String = "The calendar is limited to 120 months (10 years)."
    Public Const strAppCaptionPart1 As String = "Calendar: "
    Public Const strAppCaptionPart1b As String = ""
    Public Const strAppCaptionPart2 As String = ", "
    Public Const strAppCaptionPart3 As String = " to "
    Public Const strAppCaptionPart4 As String = ", "
    ' Status messages
    Public Const strStatusIntro As String = "Creating Calendar..."
    Public Const strStatusPart1 As String = "Creating "
    Public Const strStatusPart2 As String = ", "
    Public Const strStatusPart3 As String = "..."
    ' Assistant
    Public Const strCallBackHeading As String = "Do more with the calendar?"
    'Margins for A4 size (if wizard changes pagesize to A4)
    Public Const sA4_SHORT_MARGIN As Single = 28.8
    Public Const sA4_LONG_MARGIN As Single = 57.6
    'Margins for Letter size (if wizard changes pagesize to Letter) in pts
    Public Const sLETTER_SHORT_MARGIN As Single = 36
    Public Const sLETTER_LONG_MARGIN As Single = 36
    '========== END LOCALIZATION BLOCK - DO NOT MAKE CHANGES BELOW THIS LINE ==========
    Public Const iYearMin As Integer = 1900
    Public Const iYearMax As Integer = 4095
    ' Bookmark Names - DO NOT LOCALIZE
    ' Note: No spaces allowed in bookmark names
    Public Const strBkMkMonth As String = "Month"
    Public Const strBkMkDays As String = "Days"
    Public Const strBkMkDayNames As String = "DayNames"
    Public Const strBkMkYear As String = "Year"
    ' Calendar Style Names and Constants
    Public Const wzBOXES As Integer = 0
    Public Const wzBANNER As Integer = 1
    Public Const wzJAZZY As Integer = 2
    ' Form Control
    Public Const wzPAGE_START As Integer = 0
    Public Const wzPAGE_STYLE As Integer = 1
    Public Const wzPAGE_DIRECTION As Integer = 2
    Public Const wzPAGE_MONTHS As Integer = 3
    Public Const wzPAGE_FINISH As Integer = 4
    'orientation
    Public Const iORTN_PORTRAIT As Integer = 0
    Public Const iORTN_LANDSCAPE As Integer = 1
    ' Assistant
    Public Const iMAX_PANEL As Integer = 4 ' Number of last panel in MultiPage (First=0)
    Public Const iCALL_BACK_COUNT As Integer = 3 ' Number of items in CallBackBalloon (First=1)
    'postwizard balloon document variable
    Public Const strPOST_WIZ_BLN As String = "Calendar post wizard balloon"
    ' VARIABLE DECLARATIONS
    ' General
    Public rgstrMonthName(11) As String
    Public rgstrDayName(6) As String
    Public rgiDaysInMonth(11) As String
    Public fDateError As Boolean
    Public fCheckValidity As Boolean 'if set then the dates are checked for validity
    'variables used in doc. creation
    Public str1_TO_28 As String
    Public rgsDaysHeight(2, 1, 1) As Single
    Public rgsMonthNamesHeight(2, 1, 1) As Single
    Public rgstrDaysStyle(2) As String
    Public rgstrMonthNamesStyle(2) As String
    Public strSTY_BANNER_HDG3 As String
    ' Assistant
    Public rgstrAssistantMsg(iMAX_PANEL + 1) As String
    Public rgstrCallBackMsg(iCALL_BACK_COUNT) As String
    Public rgstrCallBackTip(iCALL_BACK_COUNT) As String
    ' Page 1
    Public iCalendarStyle As Integer
    Public iSavedStyle As Integer
    ' Page 2
    ' Page 3
    ' Page 4
    Public Sub InitWizardName(fDummy As Boolean)
    strWizName = "Calendar Wizard"
    strWizLongName = strWizName
    strWizShortName = "Calendar"
    End Sub
    Public Sub InitWizardStrings(fDummy As Boolean)
    Dim i As Integer
    On Error GoTo FatalError
    '=============================== LOCALIZATION BLOCK ===============================
    ' Note: this list is indexed 0 - iMAX_PANEL
    rgstrAssistantMsg(0) = "The Calendar Wizard helps you create a monthly calendar that you can customize with pictures and events. If you want to track and be reminded of events, you should probably use Microsoft Outlook, Microsoft Schedule+, or Microsoft Exchange."
    rgstrAssistantMsg(1) = "Select the look you want for your calendar. The Jazzy style uses the Algerian font. If it is not installed on your system, copy alger.ttf from the Valupack folder on the Microsoft Office CD to your hard drive."
    rgstrAssistantMsg(2) = "If you leave room for a picture, Word will insert a placeholder picture that you can replace with any picture you want."
    rgstrAssistantMsg(3) = "Your calendar can start on any month, and you can make your calendar shorter than or longer than 12 months. Each month will appear on a different page."
    rgstrAssistantMsg(4) = "To change any settings, click Back."
    ' Note: change constant iCALL_BACK_COUNT if number of items in list changes
    rgstrCallBackMsg(0) = "Add, remove, or replace a picture"
    rgstrCallBackMsg(1) = "Enter information into the calendar"
    rgstrCallBackMsg(2) = "Get Help on Something Else..."
    rgstrCallBackTip(0) = "To remove a picture, click on it and then press Delete. To add a picture, click where you want to insert the picture, point to Picture on the Insert menu, and then click From File."
    rgstrCallBackTip(1) = "To enter information, click where you want to insert the text and start typing. To move between different dates in the calendar, press Tab to move forward or press Shift+Tab to move to the previous date."
    'Load Month Name array
    rgstrMonthName(0) = "January"
    rgstrMonthName(1) = "February"
    rgstrMonthName(2) = "March"
    rgstrMonthName(3) = "April"
    rgstrMonthName(4) = "May"
    rgstrMonthName(5) = "June"
    rgstrMonthName(6) = "July"
    rgstrMonthName(7) = "August"
    rgstrMonthName(8) = "September"
    rgstrMonthName(9) = "October"
    rgstrMonthName(10) = "November"
    rgstrMonthName(11) = "December"
    'Load Day Name array LOCALIZATION NOTE: DO NOT CHANGE THE ORDER IN WHICH THESE APPEAR!
    ' TO CHANGE THE WEEK START DAY, CHANGE THE CONSTANT iWeekStartDay
    rgstrDayName(0) = "Sun"
    rgstrDayName(1) = "Mon"
    rgstrDayName(2) = "Tue"
    rgstrDayName(3) = "Wed"
    rgstrDayName(4) = "Thu"
    rgstrDayName(5) = "Fri"
    rgstrDayName(6) = "Sat"
    'Load Days In Month array
    rgiDaysInMonth(0) = 31
    rgiDaysInMonth(1) = 28 'Will not be used - must be calculated for leap year accuracy
    rgiDaysInMonth(2) = 31
    rgiDaysInMonth(3) = 30
    rgiDaysInMonth(4) = 31
    rgiDaysInMonth(5) = 30
    rgiDaysInMonth(6) = 31
    rgiDaysInMonth(7) = 31
    rgiDaysInMonth(8) = 30
    rgiDaysInMonth(9) = 31
    rgiDaysInMonth(10) = 30
    rgiDaysInMonth(11) = 31
    rgstrDaysStyle(wzBOXES) = "Boxes"
    rgstrDaysStyle(wzBANNER) = "Banner"
    rgstrDaysStyle(wzJAZZY) = "Jazzy"
    rgstrMonthNamesStyle(wzBOXES) = "Boxes Heading2"
    rgstrMonthNamesStyle(wzBANNER) = "Banner Heading2"
    'we dont set the style for month names in Jazzy style
    'the Banner style landscape calendar with picture uses Banner Heading3 style for month names
    strSTY_BANNER_HDG3 = "Banner Heading3"
    rgsMonthNamesHeight(wzBOXES, iORTN_PORTRAIT, 0) = 55
    rgsMonthNamesHeight(wzBOXES, iORTN_PORTRAIT, 1) = 55
    rgsMonthNamesHeight(wzBOXES, iORTN_LANDSCAPE, 0) = 36
    rgsMonthNamesHeight(wzBOXES, iORTN_LANDSCAPE, 1) = 36
    rgsDaysHeight(wzBOXES, iORTN_PORTRAIT, 0) = 56
    rgsDaysHeight(wzBOXES, iORTN_PORTRAIT, 1) = 102
    rgsDaysHeight(wzBOXES, iORTN_LANDSCAPE, 0) = 72
    rgsDaysHeight(wzBOXES, iORTN_LANDSCAPE, 1) = 71
    rgsMonthNamesHeight(wzBANNER, iORTN_PORTRAIT, 0) = 60
    rgsMonthNamesHeight(wzBANNER, iORTN_PORTRAIT, 1) = 60
    rgsMonthNamesHeight(wzBANNER, iORTN_LANDSCAPE, 0) = 55
    rgsMonthNamesHeight(wzBANNER, iORTN_LANDSCAPE, 1) = 51
    rgsDaysHeight(wzBANNER, iORTN_PORTRAIT, 0) = 64
    rgsDaysHeight(wzBANNER, iORTN_PORTRAIT, 1) = 110
    rgsDaysHeight(wzBANNER, iORTN_LANDSCAPE, 0) = 81
    rgsDaysHeight(wzBANNER, iORTN_LANDSCAPE, 1) = 81
    rgsMonthNamesHeight(wzJAZZY, iORTN_PORTRAIT, 0) = 73
    rgsMonthNamesHeight(wzJAZZY, iORTN_PORTRAIT, 1) = 73
    rgsMonthNamesHeight(wzJAZZY, iORTN_LANDSCAPE, 0) = 62
    rgsMonthNamesHeight(wzJAZZY, iORTN_LANDSCAPE, 1) = 59
    rgsDaysHeight(wzJAZZY, iORTN_PORTRAIT, 0) = 40.5
    rgsDaysHeight(wzJAZZY, iORTN_PORTRAIT, 1) = 81.8
    rgsDaysHeight(wzJAZZY, iORTN_LANDSCAPE, 0) = 58.2
    rgsDaysHeight(wzJAZZY, iORTN_LANDSCAPE, 1) = 57.5
    str1_TO_28 = ""
    For i = 1 To 28
    str1_TO_28 = str1_TO_28 & CStr(i) & vbTab
    Next i
    'strip off last tab
    str1_TO_28 = Left$(str1_TO_28, Len(str1_TO_28) - 1)
    ' Location in registry DO NOT LOCALIZE
    strRegSettingsKey = strREG_SETTINGS_BASE_KEY & "Calendar Wizard"
    Exit Sub
    FatalError:
    ReportError Err
    End Sub ' InitWizardStrings
    Public Sub InitWizard(fDummy As Boolean)
    ' Global Vars
    fWizardCallBack = False
    fDateError = False
    iCurrentPanel = 0
    ' Initialize strings
    InitWizardStrings (True)
    ' Create a new instance of the form
    Set formWizard = New formWizDlg
    If formWizard Is Nothing Then GoTo FatalError
    formWizard.lblWizName1.Caption = " " & strWizLongName & " "
    Exit Sub
    FatalError:
    DisplayErrorMsg strERR_INIT_FORM
    ReportError Err
    End Sub
    ' fDummy prevents sub from appearing in Word Tools/Macro list
    Public Sub SaveDialogValues(fDummy As Boolean)
    On Error GoTo FatalError
    ' Display status
    Application.ScreenUpdating = False
    System.Cursor = wdCursorWait
    StatusBar = strSAVE_SETTINGS
    ' Assistant
    System.PrivateProfileString("", strREG_SETTINGS_BASE_KEY, strREG_ASSISTANT_TIME_STAMP) = Format$(Now, "General Date")
    StoreValPref strREG_ASSISTANT_HELP, iLocalState
    ' Page 1
    StoreValPref "iCalendarStyle", iCalendarStyle
    ' Page 2
    StoreValPref "optPortrait", formWizard.optPortrait.Value
    StoreValPref "optPictureYes", formWizard.optPictureYes.Value
    ' Page 3
    StatusBar = ""
    System.Cursor = wdCursorNormal
    fSettingsSaved = True
    Application.ScreenUpdating = True
    Exit Sub
    FatalError:
    ReportError Err
    End Sub
    Public Sub RestoreDialogValues(fDummy As Boolean)
    Dim i As Integer
    On Error GoTo FatalError
    ' Display status
    Application.ScreenUpdating = False
    StatusBar = strRST_SETTINGS
    System.Cursor = wdCursorWait
    ' Page 1
    iCalendarStyle = IRestorePref("iCalendarStyle", 0)
    Select Case iCalendarStyle
    Case wzBOXES
    formWizard.optBoxes.Value = True
    formWizard.shpShadowBoxes.Visible = True
    Case wzBANNER
    formWizard.optBanner.Value = True
    formWizard.shpShadowBanner.Visible = True
    Case wzJAZZY
    formWizard.optJazzy.Value = True
    formWizard.shpShadowJazzy.Visible = True
    Case Else
    iCalendarStyle = wzBOXES
    formWizard.optBoxes.Value = True
    formWizard.shpShadowBoxes.Visible = True
    End Select
    ' Page 2
    If FRestorePref("optPortrait", False) Then
    formWizard.optPortrait.Value = True
    formWizard.shpPortraitShadow.Visible = True
    formWizard.shpLandscapeShadow.Visible = False
    Else
    formWizard.optLandscape.Value = True
    formWizard.shpPortraitShadow.Visible = False
    formWizard.shpLandscapeShadow.Visible = True
    End If
    formWizard.optPictureYes.Value = FRestorePref("optPictureYes", False)
    ' Page 3
    formWizard.cboMonthStart.ListIndex = Month(Date) - 1
    formWizard.cboMonthEnd.ListIndex = Month(Date) - 1
    formWizard.txtYearStart = Year(Date)
    formWizard.txtYearEnd = Year(Date)
    fCheckValidity = False
    StatusBar = ""
    System.Cursor = wdCursorNormal
    fSettingsRestored = True
    Application.ScreenUpdating = True
    Exit Sub
    FatalError:
    ReportError Err
    Exit Sub
    End Sub ' RestoreDialogValues
    ' fDummy prevents sub from appearing in Word Tools/Macro list
    Public Sub CreateNewDoc(fDummy As Boolean)
    Dim iMonthCurr As Integer
    Dim iYearCurr As Integer
    Dim lYearMonthCurr As Long
    Dim lYearMonthEnd As Long
    Dim iDaysCnt As Integer
    Dim iDaysInMonth As Integer
    Dim iCnt As Integer
    Dim strAutoTextName As String
    Dim objTableDays As Table
    Dim iRow As Integer
    Dim iCol As Integer
    Dim ocboMonthStart As ComboBox
    Dim ocboMonthEnd As ComboBox
    Dim otxtYearStart As TextBox
    Dim otxtYearEnd As TextBox
    Dim strJazzyDayNames As String
    Dim objFps As PageSetup
    Dim objRng As Range
    Dim sShortMargin As Single
    Dim sLongMargin As Single
    Dim strCaptionTxt As String
    Dim iOrientation As Integer
    Dim iNoPicture As Integer
    Dim i As Integer
    Dim strDays As String
    On Error GoTo CreateNewDoc_Error
    System.Cursor = wdCursorWait
    Set ocboMonthStart = formWizard.cboMonthStart
    Set ocboMonthEnd = formWizard.cboMonthEnd
    Set otxtYearStart = formWizard.txtYearStart
    Set otxtYearEnd = formWizard.txtYearEnd
    With Application
    .ScreenUpdating = False
    .StatusBar = strStatusIntro
    End With
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    If (formWizard.optPortrait) Then
    iOrientation = iORTN_PORTRAIT
    Else
    iOrientation = iORTN_LANDSCAPE
    End If
    iNoPicture = Abs(formWizard.optPictureNo.Value)
    'the margins have to be changed if papersize was changed in Common
    If (fChangeToA4 Or fChangeToLetter) Then
    Set objFps = ActiveDocument.PageSetup
    If iOrientation = iORTN_LANDSCAPE Then
    objFps.Orientation = wdOrientLandscape 'setting paper size in common
    'resets orientation to Portrait
    If fChangeToA4 Then
    sShortMargin = sA4_SHORT_MARGIN
    sLongMargin = sA4_LONG_MARGIN
    Else
    sShortMargin = sLETTER_SHORT_MARGIN
    sLongMargin = sLETTER_LONG_MARGIN
    End If
    Else
    If fChangeToA4 Then
    sShortMargin = sA4_LONG_MARGIN
    sLongMargin = sA4_SHORT_MARGIN
    Else
    sShortMargin = sLETTER_LONG_MARGIN
    sLongMargin = sLETTER_SHORT_MARGIN
    End If
    End If
    With objFps
    .TopMargin = sShortMargin
    .BottomMargin = sShortMargin
    .LeftMargin = sLongMargin
    .RightMargin = sLongMargin
    End With
    End If
    strAutoTextName = StrBuildAutoTextName(True)
    objWizTemplate.AutoTextEntries(strAutoTextName).Insert objActiveRange, True
    If iCalendarStyle <> wzJAZZY Then
    Set objActiveRange = ActiveDocument.Bookmarks(strBkMkDays).Range
    Else
    Set objActiveRange = ActiveDocument.Bookmarks(strBkMkDayNames).Range
    End If
    strJazzyDayNames = ""
    For iCnt = iWeekStartDay To 6
    strJazzyDayNames = strJazzyDayNames & rgstrDayName(iCnt) & vbTab
    Next
    For iCnt = 0 To (iWeekStartDay - 1)
    strJazzyDayNames = strJazzyDayNames & rgstrDayName(iCnt) & vbTab
    Next
    'Strip trailing Tab
    strJazzyDayNames = Left$(strJazzyDayNames, Len(strJazzyDayNames) - 1)
    objActiveRange.Text = strJazzyDayNames
    If iCalendarStyle <> wzJAZZY Then
    If (iCalendarStyle = wzBANNER) And (iOrientation = iORTN_LANDSCAPE) And (iNoPicture = 0) Then
    objActiveRange.Style = strSTY_BANNER_HDG3
    Else
    objActiveRange.Style = rgstrMonthNamesStyle(iCalendarStyle)
    End If
    objActiveRange.Select
    Selection.ConvertToTable wdSeparateByTabs, 1, 7
    End If
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Copy
    iMonthCurr = CInt(ocboMonthStart.ListIndex) + 1
    iYearCurr = CInt(otxtYearStart.Text)
    lYearMonthCurr = (CLng(iYearCurr) * 100) + CLng(iMonthCurr)
    lYearMonthEnd = (CLng(otxtYearEnd.Text) * 100) + (CLng(ocboMonthEnd.ListIndex) + 1)
    'Create each month of the calendar
    Do Until lYearMonthCurr > lYearMonthEnd
    Application.StatusBar = strStatusPart1 & rgstrMonthName(iMonthCurr - 1) & strStatusPart2 & CStr(iYearCurr) & strStatusPart3
    'Set month
    If iCalendarStyle = wzJAZZY Then
    ActiveDocument.Bookmarks(strBkMkMonth).Range.Text = CStr(iMonthCurr)
    Else
    ActiveDocument.Bookmarks(strBkMkMonth).Range.Text = rgstrMonthName(iMonthCurr - 1)
    End If
    'Set year
    ActiveDocument.Bookmarks(strBkMkYear).Range.Text = CStr(iYearCurr)
    'Determine number of days in month
    If iMonthCurr = 2 Then
    iDaysInMonth = DateSerial(iYearCurr, 3, 1) - DateSerial(iYearCurr, 2, 1)
    Else
    iDaysInMonth = rgiDaysInMonth(iMonthCurr - 1)
    End If
    'Set Column of First Day Of Month by using Weekday function. The 8th
    'is used (to start with) instead of the 1st to allow for offsetting (via
    'iWeekStartDay) for localization since the 8th will always fall on the
    'same day (of the week) as the 1st.
    iCol = WeekDay(DateSerial(iYearCurr, iMonthCurr, 8 - iWeekStartDay))
    ActiveDocument.Bookmarks(strBkMkDays).Select
    If iCalendarStyle <> wzJAZZY Then _
    Selection.MoveDown wdLine 'the bookmark is now in the first cell of the table
    strDays = ""
    For i = 1 To iCol - 1
    strDays = strDays & vbTab
    Next i
    strDays = strDays & str1_TO_28
    For i = 29 To iDaysInMonth
    strDays = strDays & vbTab & CStr(i)
    Next i
    'to get a 6 * 7 table always
    For i = iDaysInMonth + iCol - 1 To 41
    strDays = strDays & vbTab
    Next i
    Set objActiveRange = Selection.Range
    objActiveRange.Text = strDays
    objActiveRange.Style = rgstrDaysStyle(iCalendarStyle) & iOrientation & iNoPicture
    objActiveRange.Select
    Selection.ConvertToTable wdSeparateByTabs, 6, 7
    Selection.Cells.Height = rgsDaysHeight(iCalendarStyle, iOrientation, iNoPicture)
    Selection.Tables(1).Rows(1).Height = rgsMonthNamesHeight(iCalendarStyle, iOrientation, iNoPicture)
    '================================================================================================================================
    ' Tu.Mar.11.2015; 17h56 - MVPEdits/MyEdits
    ' SATURDAY and SUNDAY cells get shaded in the table (no matter where they fall).
    ' Doug Robbins - Word MVP; https://social.msdn.microsoft.com/Forums/office/en-US/6ab55be0-adc0-4e37-9565-8cdff089d20a/shading-certain-columns-depending-on-start-day-of-week?forum=worddev
    Dim j As Long
    With Selection.Tables(1)
    If iWeekStartDay = 1 Then
    For i = 6 To 7
    With .Columns(i)
    ' For j = 1 To .Cells.Count ' 1 = Cells with SAT and SUN text are shaded
    For j = 2 To .Cells.Count ' 2 = Cells with SAT and SUN text are _ NOT_ shaded
    With .Cells(j).Range
    If Len(.Text) > 2 Then
    .Shading.BackgroundPatternColor = wdColorGray20 'wdColorGray_ _ _ (the number following gives the shade of gray, i.e., wdColorGray20 vs. wdColorGray50)
    End If
    End With
    Next j
    End With
    Next i
    Else
    For i = 1 To 7 Step 6
    With .Columns(i)
    ' For j = 1 To .Cells.Count ' 1 = Cells with SAT and SUN text are shaded
    For j = 2 To .Cells.Count ' 2 = Cells with SAT and SUN text are _ NOT_ shaded
    With .Cells(j).Range
    If Len(.Text) > 2 Then
    .Shading.BackgroundPatternColor = wdColorGray20 'wdColorGray_ _ _ (the number following gives the shade of gray, i.e., wdColorGray20 vs. wdColorGray50)
    End If
    End With
    Next j
    End With
    Next i
    End If
    End With
    '================================================================================================================================
    '================================================================================================================================
    ' Mn.Sept.01.2014; 08h21 - MVPEdits/MyEdits
    ' TABLE GRIDLINES CODE: Automatically creates printable gridlines in the table.
    With Selection.Tables(1).Borders
    .InsideLineStyle = wdLineStyleSingle
    .InsideLineWidth = wdLineWidth100pt
    .InsideColorIndex = wdAuto
    .OutsideLineStyle = wdLineStyleSingle
    .OutsideLineWidth = wdLineWidth100pt
    End With
    '================================================================================================================================
    ActiveDocument.Bookmarks(strBkMkDays).Delete
    'Advance the current month
    If iMonthCurr = 12 Then
    iMonthCurr = 1
    iYearCurr = iYearCurr + 1
    Else
    iMonthCurr = iMonthCurr + 1
    End If
    lYearMonthCurr = (CLng(iYearCurr) * 100) + CLng(iMonthCurr)
    If lYearMonthCurr <= lYearMonthEnd Then
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    'Insert Page Break
    objActiveRange.InsertBreak wdPageBreak
    Set objActiveRange = ActiveDocument.Content
    objActiveRange.Collapse wdCollapseEnd
    objActiveRange.Paste
    End If
    Loop
    Application.StatusBar = ""
    strCaptionTxt = ""
    'Set Application caption
    strCaptionTxt = " - " & strAppCaptionPart1 & strAppCaptionPart1b & ocboMonthStart.Text & strAppCaptionPart2 & otxtYearStart.Text & strAppCaptionPart3 & ocboMonthEnd.Text & strAppCaptionPart4 & otxtYearEnd.Text
    ActiveDocument.UndoClear
    With ActiveWindow
    .Caption = .Caption & strCaptionTxt
    With .View
    .TableGridlines = False
    .ShowDrawings = True
    End With
    End With
    'Position cursor at the top
    Selection.HomeKey wdStory
    CreateNewDoc_Exit:
    Exit Sub
    CreateNewDoc_Error:
    ReportError Err
    GoTo CreateNewDoc_Exit
    End Sub ' CreateNewDoc
    Public Sub InitCallBack(fDummy As Boolean)
    Dim i As Integer
    Dim objCallBackLabels As BalloonLabels
    On Error GoTo ErrorCallBack
    If Not (fBlnInitialized) Then
    Set objPostWizBln = Assistant.NewBalloon
    fBlnInitialized = True
    With objPostWizBln
    .Heading = strCallBackHeading
    .Mode = msoModeModeless
    .Button = msoButtonSetCancel
    .BalloonType = msoBalloonTypeButtons
    .Callback = "Calendar.fnCallBack"
    End With
    Set objCallBackLabels = objPostWizBln.Labels
    objCallBackLabels.Count = iCALL_BACK_COUNT
    For i = 1 To iCALL_BACK_COUNT
    objCallBackLabels.Item(i).Text = rgstrCallBackMsg(i - 1)
    Next i
    End If
    objPostWizBln.Show
    If (Assistant.BalloonError) Then GoTo ErrorCallBack
    fPostWizBlnOpen = True
    Set objDocBln = ActiveDocument
    Set clsBln.app = Application
    ActiveDocument.Variables.Add strPOST_WIZ_BLN, "1"
    Exit Sub
    ErrorCallBack:
    DisplayErrorMsg strERR_INIT_CALL_BACK
    fPostWizBlnOpen = False
    Set objDocBln = ActiveDocument
    Set clsBln.app = Application
    ActiveDocument.Variables.Add strPOST_WIZ_BLN, "0"
    End Sub
    Public Function fnCallBack(objBln As Balloon, iBtn As Integer, lPrivate As Long)
    On Error GoTo ErrorCallBack
    Select Case iBtn
    Case Is < 1 'Exit
    objBln.Close
    fPostWizBlnOpen = False
    ActiveDocument.Variables(strPOST_WIZ_BLN).Value = "0"
    RestoreAssistant (True)
    Case 1 'Remove existing picture
    DisplayTip rgstrCallBackTip(0)
    Case 2 'Enter information into calendar
    DisplayTip rgstrCallBackTip(1)
    Case 3 ' Get help
    Assistant.Help
    End Select
    Exit Function
    ErrorCallBack:
    DisplayErrorMsg Err.Description
    End Function
    Private Function StrBuildAutoTextName(fDummy As Boolean) As String
    Dim strATName As String
    On Error GoTo BuildAutoTextName_Error
    'Select base AutoText Name NOTE: DO NOT LOCALIZE
    Select Case iCalendarStyle
    Case wzBOXES
    strATName = "Boxes"
    Case wzBANNER
    strATName = "Banner"
    Case wzJAZZY
    strATName = "Jazzy"
    End Select
    strATName = strATName & CStr(Abs(formWizard.optLandscape.Value))
    strATName = strATName & CStr(Abs(formWizard.optPictureNo.Value))
    StrBuildAutoTextName = strATName
    BuildAutoTextName_Exit:
    Exit Function
    BuildAutoTextName_Error:
    StrBuildAutoTextName = ""
    Resume BuildAutoTextName_Exit
    End Function
    'displays a tip during post-wizard options
    'assumes that Assistant is present since it is called from post-wizard balloon
    Private Sub DisplayTip(strTip As String)
    Dim objBlnTip As Balloon
    On Error GoTo FatalError
    Set objBlnTip = Assistant.NewBalloon
    With objBlnTip
    .Mode = msoModeModal
    .Heading = strWizName
    .Text = strTip
    .Button = msoButtonSetOK
    End With
    objBlnTip.Show
    If Assistant.BalloonError <> msoBalloonErrorNone Then GoTo FatalError
    Exit Sub
    FatalError:
    Err.Clear
    End Sub
    Thank you once again for all your help!!  Very much appreciated.  :D

  • Hyperlinked text--the text, not the link--disappears when I create a PDF from a book in FM 11

    I am editing a FrameMaker 11 document with some text that is hyperlinked to a website. Earlier PDFs output fine. When I created the last PDF, some of the text disappeared in the PDF, but it's still visible in FM. On the PDF, the hyperlink is active in the blank space and it works to go to the website. Specifically the hyperlinked text is part numbers in a table with a shaded background--I mention this because if I open a page of the defective PDF in Illustrator--the text that has disappeared is behind the shaded square. Some of the hyperlinked part numbers are visible in the PDF--this seems almost random. It's not just part numbers or rows where I have edited something. I'm editing the document, I didn't create it. My background is InDesign and I am a novice in FrameMaker. Appreciate any guidance or suggestions.

    Not really sure that I fixed the problem, but I did find a work around and wanted to post it if someone else runs across the same issue. Apparently the document creator used lots of custom rules and shading. If I pulled up the custom rules and shading palette and just unchecked both the custom ruling and shading boxes, it allowed me to create the print file correctly--the disappearing part numbers were on the new PDF. I didn't have to update the whole book which I didn't want to do because I feared it would mess up the rules and shading. Just unchecking the box before creating the PDF solved that issue for my purposes.

Maybe you are looking for

  • ERROR - CLONE-20270   Java home of the Middleware home is invalid.

    Dear All, I am executing copyBinary script (cloning environment). The following error appears during execution: SEVERE : Nov 26, 2012 7:25:27 PM - ERROR - CLONE-20270 Java home of the Middleware home is invalid. SEVERE : Nov 26, 2012 7:25:27 PM - CAU

  • Max no of threads

    Is there such a thing as a max number of threads in a midp j2me application. My application, which makes extensive use of threads is suffering from hanging, where is shouldn't. How do I remedy this? Thanks. Pier.

  • Synchronize sitewide

    I am trying to upload PDF files to my remote server and am unable to do so. I have selected the text which I want to be the target (users click on it to access PDF) and then browsed for file in the properties palette. Instead of a link to the PDF I g

  • Vertical white lines along edges of still frames

    I am using Premiere Elements 1.0 with Windows Vista in XP compatibility mode. I have inserted some still frames which are bitmaps with a black background. When I make a DVD the still frames have a vertical white line along one edge. Even when the bit

  • Business Objects 3.x Enterprise Sizing Guide for Unix

    Anyone see or have heard about a 3.x sizing guide specific to Unix?  The current 3x sizing guide claims it addresses Unix....but it does not.