![]() |
|
#1
|
|||
|
|||
|
1. I created the following simple macro in Word, to remove space before and after paragraphs in a document.
Code:
Sub ClearParagraphSpacing() Selection.WholeStory With Selection.ParagraphFormat .SpaceBefore = 0 .SpaceBeforeAuto = False .SpaceAfter = 0 .SpaceAfterAuto = False End With End Sub 2. I can add a shortcut for the macro on the Ribbon or the Quick Access Toolbar, but when I click on it, nothing happens. However, as the macro needs to work in a message editing window (not in the main folder window), does it need a different kind of shortcut? |
|
#2
|
|||
|
|||
|
VBA code for Word won't work in Outlook -- or in any other VBA-supported Microsoft product.
VBA comes in different "flavours." Each application has a unique object model, and for that reason, VBA for each application has to be different. I find VBA for Outlook especially difficult to understand. Hopefully you'll find code samples on the web that give hints on how to accomplish what you want to do. Another way to do this, albeit less elegant, is to use a third-party automation tool to do the heavy lifting. For example, this Macro Express script (tested only once) might get the job done by sending sequences of keys. To make this script reliable, you may need to add delays after some of the steps. Text Type (Simulate Keystrokes): <CONTROL>a // Select all Text Type (Simulate Keystrokes): <F10> // Give the Ribbon focus Text Type (Simulate Keystrokes): o // Format ribbon Text Type (Simulate Keystrokes): pg // Paragraph settings Text Type (Simulate Keystrokes): <ALT>b // Navigate to Spacing Before field Text Type (Simulate Keystrokes): 0 pt Text Type (Simulate Keystrokes): <TAB> // Navigate to Spacing After field Text Type (Simulate Keystrokes): 0 pt Text Type (Simulate Keystrokes): <ENTER> // Activate the default OK button |
|
#3
|
||||
|
||||
|
As Outlook uses a subset of Word to edit messages, you can use some Word VBA in Outlook messages, but you have to tell the macro what you are doing. The following will remove the paragraph spacing (attributable to the paragraph formatting) of the selected message:
Code:
Sub ClearParagraphSpacing()
'Graham Mayor - https://www.gmayor.com - Last updated - 05 Dec 2022
Dim olMsg As Outlook.MailItem
Dim olInsp As Outlook.Inspector
Dim wdDoc As Object
Dim oRng As Object
On Error Resume Next
Select Case Outlook.Application.ActiveWindow.Class
Case olInspector
Set olMsg = ActiveInspector.currentItem
Case olExplorer
Set olMsg = Application.ActiveExplorer.Selection.Item(1)
End Select
On Error GoTo lbl_Exit
With olMsg
Set olInsp = .GetInspector
Set wdDoc = olInsp.WordEditor
Set oRng = wdDoc.Range
.Display
With oRng.ParagraphFormat
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
End With
End With
lbl_Exit:
Set olMsg = Nothing
Set olInsp = Nothing
Set wdDoc = Nothing
Set oRng = Nothing
Exit Sub
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#4
|
|||
|
|||
|
Thanks for your replies. Graham's code does exactly what I wanted, and I have successfully assigned it to a button on the Quick Access Toolbar.
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Need Help with this Macro-Partially Working | rsrasc | Excel Programming | 10 | 09-10-2020 02:38 PM |
| Just one macro not working | Ulodesk | Word VBA | 1 | 04-01-2019 09:16 AM |
| How to move data - Macro not working | ecarter312 | Excel Programming | 1 | 08-10-2016 11:26 PM |
Fraction macro not working
|
Ulodesk | Word VBA | 1 | 07-18-2012 04:01 PM |
| Macro to open template not working | Brandi | Mail Merge | 2 | 06-24-2010 09:29 AM |