Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 08-17-2023, 12:09 AM
Italophile Italophile is offline Change "fill" text colour to no colour Windows 11 Change "fill" text colour to no colour Office 2021
Expert
 
Join Date: Mar 2022
Posts: 554
Italophile is just really niceItalophile is just really niceItalophile is just really niceItalophile is just really nice
Default

Quote:
Originally Posted by darkmaster006 View Post
Nothing gets changed. Do you have any idea how to do it to texts like these too?
Without seeing the document, it is only possible to guess.
Reply With Quote
  #2  
Old 08-17-2023, 02:37 AM
vivka vivka is offline Change "fill" text colour to no colour Windows 7 64bit Change "fill" text colour to no colour Office 2016
Expert
 
Join Date: Jul 2023
Posts: 302
vivka is on a distinguished road
Default

Hi again! Unfortunaltely, from the very beginning it was not clear that the document had a page filling color. After the misunderstanding has been corrected, here's the code that seems to work:

Code:
Sub Deshading()

Dim oPara As Paragraph
'If the selection includes tables, error 4605 will be returned.
'Thus, an error handler is needed:
On Error Resume Next

Application.ScreenUpdating = False
    For Each oPara In ActiveDocument.range.Paragraphs
        oPara.range.Select
        If Not selection.Shading.BackgroundPatternColor = wdColorAutomatic Then
            selection.Shading.BackgroundPatternColor = wdColorAutomatic
        End If
    Next oPara
Application.ScreenUpdating = True
End Sub

Last edited by vivka; 08-17-2023 at 09:53 PM.
Reply With Quote
  #3  
Old 08-18-2023, 08:44 PM
darkmaster006 darkmaster006 is offline Change "fill" text colour to no colour Windows 10 Change "fill" text colour to no colour Office 2021
Novice
Change "fill" text colour to no colour
 
Join Date: Aug 2023
Posts: 10
darkmaster006 is on a distinguished road
Default

Quote:
Originally Posted by Italophile View Post
Without seeing the document, it is only possible to guess.
Oh, alright! I've uploaded an example file with the text that I talked about, if that helps.

Quote:
Originally Posted by vivka View Post
Hi again! Unfortunaltely, from the very beginning it was not clear that the document had a page filling color. After the misunderstanding has been corrected, here's the code that seems to work:

Code:
Sub Deshading()

Dim oPara As Paragraph
'If the selection includes tables, error 4605 will be returned.
'Thus, an error handler is needed:
On Error Resume Next

Application.ScreenUpdating = False
    For Each oPara In ActiveDocument.range.Paragraphs
        oPara.range.Select
        If Not selection.Shading.BackgroundPatternColor = wdColorAutomatic Then
            selection.Shading.BackgroundPatternColor = wdColorAutomatic
        End If
    Next oPara
Application.ScreenUpdating = True
End Sub
Thank you for the help! This does not seems to work, sadly. Furthermore, it seems to select the last paragraph and make the cursor go to the end of the document.
Attached Files
File Type: docx example.docx (12.9 KB, 5 views)
Reply With Quote
  #4  
Old 08-19-2023, 05:29 AM
vivka vivka is offline Change "fill" text colour to no colour Windows 7 64bit Change "fill" text colour to no colour Office 2016
Expert
 
Join Date: Jul 2023
Posts: 302
vivka is on a distinguished road
Default

Hi! Is your example is what you want to get or what you don't want to get but get?
Reply With Quote
  #5  
Old 08-19-2023, 06:22 AM
vivka vivka is offline Change "fill" text colour to no colour Windows 7 64bit Change "fill" text colour to no colour Office 2016
Expert
 
Join Date: Jul 2023
Posts: 302
vivka is on a distinguished road
Default

This code replaces automatic shading with the page color set in your example document:
Code:
Sub Another_Go()
'
Application.ScreenUpdating = False
'If the selection includes tables, error 4605 will be returned.
'Thus an error handler is needed:
On Error Resume Next
    For Each oPara In ActiveDocument.range.Paragraphs
        oPara.range.Select
        selection.End = selection.End - 1
        selection.Shading.BackgroundPatternColor = -654246042
    Next oPara
Application.ScreenUpdating = True
End Sub
Reply With Quote
  #6  
Old 08-19-2023, 11:39 AM
Italophile Italophile is offline Change "fill" text colour to no colour Windows 11 Change "fill" text colour to no colour Office 2021
Expert
 
Join Date: Mar 2022
Posts: 554
Italophile is just really niceItalophile is just really niceItalophile is just really niceItalophile is just really nice
Default

Quote:
Originally Posted by vivka View Post
This code replaces automatic shading with the page color set in your example document:
I知 pretty sure you値l find that the page color has only been set to make the text shading visible. Kinda hard to see white shading against a white background.
Reply With Quote
  #7  
Old 08-19-2023, 02:01 PM
vivka vivka is offline Change "fill" text colour to no colour Windows 7 64bit Change "fill" text colour to no colour Office 2016
Expert
 
Join Date: Jul 2023
Posts: 302
vivka is on a distinguished road
Default

Italophile, thank you for clearing up the misunderstanding. My n-th try:
Code:
Sub Test_Nth()

Application.ScreenUpdating = False
'If the selection includes tables, error 4605 will be returned.
'Thus an error handler is needed:
On Error Resume Next
    For Each oPara In ActiveDocument.range.Paragraphs
        oPara.range.Select
        selection.End = selection.End - 1
        selection.Shading.BackgroundPatternColor = wdColorAutomatic
    Next oPara
Application.ScreenUpdating = True
End Sub
Reply With Quote
  #8  
Old 08-21-2023, 07:07 AM
darkmaster006 darkmaster006 is offline Change "fill" text colour to no colour Windows 10 Change "fill" text colour to no colour Office 2021
Novice
Change "fill" text colour to no colour
 
Join Date: Aug 2023
Posts: 10
darkmaster006 is on a distinguished road
Post

Quote:
Originally Posted by Italophile View Post
I知 pretty sure you値l find that the page color has only been set to make the text shading visible. Kinda hard to see white shading against a white background.
Indeed. Although, for a fact, I am using that page colour. It's easier on the eyes than the white. Thank you for all the help!



Quote:
Originally Posted by vivka View Post
Italophile, thank you for clearing up the misunderstanding. My n-th try:
Code:
Sub Test_Nth()

Application.ScreenUpdating = False
'If the selection includes tables, error 4605 will be returned.
'Thus an error handler is needed:
On Error Resume Next
    For Each oPara In ActiveDocument.range.Paragraphs
        oPara.range.Select
        selection.End = selection.End - 1
        selection.Shading.BackgroundPatternColor = wdColorAutomatic
    Next oPara
Application.ScreenUpdating = True
End Sub
Wow, this works amazingly! Thank you very much for all the help, too!
Just in case, I added:
Selection.HomeKey Unit:=wdStory
(that is, Ctrl+Home)
so that the cursor ends up in the beginning of the document. With that added, this works flawlessly.
Full code, in case anyone wants it:
Code:
Sub AutoOpen()
'
' AutoOpen Macro
'
' This macro opens itself (AutoOpen) automatically with every Word document that's opened normally
' Choose background colour (light green 2)
    ActiveDocument.Background.Fill.ForeColor.ObjectThemeColor = wdThemeColorAccent6
    ActiveDocument.Background.Fill.ForeColor.TintAndShade = 0.6
    ActiveDocument.Background.Fill.Visible = msoTrue
    ActiveDocument.Background.Fill.Solid
' Turn option 'Show background colors and images in Display view' on
    ActiveWindow.View.DisplayBackgrounds = True
' Change all text font to black colour
    ActiveDocument.Content.Font.Color = wdColorBlack
' Change all text and change "fill shading" background to no colour https://www.msofficeforums.com/word-vba/51216-change-fill-text-colour-colour.html
    With ActiveDocument.Content.ParagraphFormat
        .Shading.Texture = wdTextureNone
        .Shading.ForegroundPatternColor = wdColorAutomatic
        .Shading.BackgroundPatternColor = wdColorAutomatic
    End With
' Change all paragraphs with fill to no fill (from https://www.msofficeforums.com/word-vba/51216-change-fill-text-colour-colour.html)
Application.ScreenUpdating = False
'If the selection includes tables, error 4605 will be returned.
'Thus an error handler is needed:
On Error Resume Next
    For Each oPara In ActiveDocument.Range.Paragraphs
        oPara.Range.Select
        Selection.End = Selection.End - 1
        Selection.Shading.BackgroundPatternColor = wdColorAutomatic
    Next oPara
Application.ScreenUpdating = True
    Selection.HomeKey Unit:=wdStory
End Sub
Reply With Quote
Reply

Tags
fill, shading



Similar Threads
Thread Thread Starter Forum Replies Last Post
Change Text Colour/Box Shade if CheckBox is marked cavals07 Word VBA 7 01-30-2023 11:05 AM
Change "fill" text colour to no colour New table line has some cells fill colour change trevorc Excel 2 06-30-2021 12:27 PM
Text box fill colour changes when pasted to new file ParishPete Publisher 0 06-21-2019 12:47 AM
Change text colour for content control labels? Toe Word 1 01-17-2019 08:45 AM
How to globally change default "pattern fill" color for all shapes in PP 2013 tbach PowerPoint 1 01-31-2014 10:59 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 03:26 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft