Just nu i M3-nätverket
Gå till innehåll
Mikael63

LÖST Verktygsknappar för Markeringsfärg för text

Rekommendera Poster

Sitter då och då med dokument där jag ofta behöver markera text gul, grön, röd och "ingen".

Skulle vilja ha en färdig knapp för varje färg. Går det att fixa?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Vilken version av Word?

jag tror oavsett att du får skapa lite VBA-kod som du kopplar till en knapp. Det senare är lite olika för om du har Word med ribbon eller ej.

 

Kod som denna:

Public Sub MarkYellow()
Selection.Range.HighlightColorIndex = wdYellow
End Sub

som helt enkelt markerar den valda texten med gul färg.

Alternativt kan du skapa dessa makron och koppla dem till snabbknappar.

 

Få rätt färg? Spela in makro när du stryker över, ta bort den onödiga koden (allt annat än det ovan) och ge funktionen ett bättre namn.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Vilken version av Word?

Jag satsar på att det gäller Word 2010 (se beskrivning)....men har inget förslag till lösning.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Vilken version av Word?

jag tror oavsett att du får skapa lite VBA-kod som du kopplar till en knapp. Det senare är lite olika för om du har Word med ribbon eller ej.

 

Kod som denna:

Public Sub MarkYellow()
Selection.Range.HighlightColorIndex = wdYellow
End Sub

som helt enkelt markerar den valda texten med gul färg.

Alternativt kan du skapa dessa makron och koppla dem till snabbknappar.

 

Få rätt färg? Spela in makro när du stryker över, ta bort den onödiga koden (allt annat än det ovan) och ge funktionen ett bättre namn.

 

Funkar perfekt - TACK!!

Fanns ju också lämpliga "ikoner" att använda till knapparna!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Fortsätter i denna tråd även fast det nu gäller Excel 2010.

 

Jag har gjort samma procedur, alltså detta med färgerna, i Excel och först valde jag att spara mina makron i Arbetsboken egna makron. Då kunde jag inte välja in dessa till fältet snabbåtkomst.

Så valde jag att spara makron i Aktuell arbetsbok och då kunde jag koppla mina knappar.

När jag ville redigera makrot tilläts jag inte att spara.

Nu när jag öppnar arbetsboken finns inga makron.

 

Vad är rätt väg att gå?

Har inte använt makron sedan Office97..

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Du måste spara excelfilen där du lägger dina macron i XLSM-format (Macroaktiverat excelarbetsboksformat), annars händer precis det du beskriver.

 

Om du använder macron ofta så lägg filen med dessa i mappen "C:\Program Files (x86)\Microsoft Office\Office12\XLSTART" så startas filen automatiskt när du startar excel.

 

Om du har excel 2010 så får du nog leta efter mappen nedan istället:

 

"C:\Program Files (x86)\Microsoft Office\Office13\XLSTART"

Redigerad av Tune

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tack!
Jag valde åter att spara dessa i "Arbetsboken egna makron" som är den föreslagna.
Den boken är dold och jag var tvungen att ta fram den för att kunna lägga till själva knapparna, något jag har för mig att jag hade gjort förra gången med. Sedan kan jag dölja den.

Varför jag inte kunde spara tidigare vet jag inte än men nu fungerar det.
Antar att just den arbetsboken laddas automatiskt? Min C:\Program\Microsoft Office\Office14\XLSTART\ är tom.

Edit, på förekommen anledning: "Arbetsboken egna makron" (Excel) verkar vara C:\Users\[namn]\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB

Makron i Word ligger i C:\Users\[namn]\AppData\Roaming\Microsoft\Templates\ och troligen i filen Normal.dotm
Tillägg: För mig tycks det som att det även finnas en Normal.dotm i mappen C:\SAFE\[Företagsnamn]Mallar som verkar vara den dokumentmall som styr. (?)

Redigerad av Mikael63

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu har jag tänkt mig att använda samma makro, som i Word, att fungera i Outlook.

Där får jag:

Citat

 

Körfel nr '424'.:

Objekt krävs.

 

Hur behöver koden modifieras för att passa i Outlook?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Om du har tillgång till Outlook-objektet i koden, ex. oOut så behöver du använda en referens till det Word-liknande fönstret och sedan gå tillväga på samma sätt (tror jag). Typ:

 

Set OutMail = oOut.ActiveExplorer.Selection.Item(1)
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        wdDoc.Application.Selection.Range.HighlightColorIndex = någonfärg

 

EDIT: Om du inte har en egen referens till Outlook redan så pröva med

Set oOut = GetObject(, "Outlook.Application")
Redigerad av Anjuna Moon

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag har inte tillgång till jobbardatorn förrän i morgon men som ytterligare info så öppnade jag "VBA-kod" i Outlook, under fliken Utvecklare(?), infogade en modul och i fönstret klistrade jag in koden från Monshi:

Public Sub MarkYellow()
Selection.Range.HighlightColorIndex = wdYellow
End Sub

(och för andra färger)

 

Det är i/från Outlook jag kör makrot, när jag skriver/svarar.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
20 timmar sedan, skrev Anjuna Moon:

Om du har tillgång till Outlook-objektet i koden, ex. oOut så behöver du använda en referens till det Word-liknande fönstret och sedan gå tillväga på samma sätt (tror jag). Typ:

 


Set OutMail = oOut.ActiveExplorer.Selection.Item(1)
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        wdDoc.Application.Selection.Range.HighlightColorIndex = någonfärg

 

EDIT: Om du inte har en egen referens till Outlook redan så pröva med


Set oOut = GetObject(, "Outlook.Application")

Nix, jag får fortfarande samma felmeddelande.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det går att ändra textfärgen med Anjunas metod. förenklat :

Sub test2()
    Set OutApp = GetObject(, "Outlook.Application")
    Set OutMail = OutApp.ActiveExplorer.Selection.Item(1)
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        wdDoc.Application.Selection.Font.color = vbYellow
    End With
End Sub

 

Och jag kan även köra Highligt-färgkoden utan felmeddelande 

Sub test2()
    Set OutApp = GetObject(, "Outlook.Application")
    Set OutMail = OutApp.ActiveExplorer.Selection.Item(1)
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        wdDoc.Application.Selection.Range.HighlightColorIndex = wdYellow
    End With
End Sub

Men, inte tusan ändrar den färg...

 

Jag misstänker starkt att AM begriper sig på  .WordEditor och kan ge en lösning direkt.

 

exempel på diskussion om hur man fiskar selection i outlook  (med felhantering och andra lyxdetaljer)

http://www.vbaexpress.com/forum/showthread.php?52985-VBA-get-selected-text-from-Outlook-email-body-and-use-in-Excel

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
På 2020-01-24 på 18:05, skrev MH_resurrected:

Det går att ändra textfärgen med Anjunas metod. förenklat :


Sub test2()
    Set OutApp = GetObject(, "Outlook.Application")
    Set OutMail = OutApp.ActiveExplorer.Selection.Item(1)
    With OutMail
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor
        wdDoc.Application.Selection.Font.color = vbYellow
    End With
End Sub

Japp, det funkar och det skulle även kunna vara tillräckligt med bara textfärg, i Outlook.

Det är dock bara gul och röd som jag får att fungera, om jag använder samma namn på färgerna som jag använder i Word/Excel. (och gul går bort)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det finns några fler konstanter. T.ex:

vbRed, vbGreen, vbBlue, vbMagenta, vbCyan

Annars kan du Köra RGB.  Ren röd färg blir t.ex:

wdDoc.Application.Selection.Font.Color = RGB(255, 0, 0)

 

Om du ändra färg på teckensnittet i ett officeprogram (med färgpennan) och väljer "Fler färger"-Valfri så kan du välja en färg och se vad koden blir.

 

Men varför i HE går det inte att ändra bakgrundsfärg????? Outlook har Iofs en väldigt begränsad palett. Men jag trodde att  .WordEditor  innebar att man öppnade en helt utomstående editor.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)
10 minuter sedan, skrev MH_resurrected:

...Outlook har Iofs en väldigt begränsad palett....

 

Ok. Tänk om man skulle använda hjärnan någon gång...

 

ColourIndex verkar ju bara vara ett nummer mellan 1 och 18 som anger vilken färg i paletten du vill ha. Förmodligen kopplat till ditt aktuella färgschema.  Nr 16 är en ganska snygg grå överstrykning i min outlook

wdDoc.Application.Selection.Range.HighlightColorIndex = 16

 

Men, nu återstår väl Elefanten i glasburen. Går det att lägga till egna knappar i Outlook ???

 

Redigerad av MH_resurrected
Jak kn ingte stavva

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Ja, Cyan hann jag med att testa men den blir också svårläst.

 

I Outlook ska jag alltså använda detta för att lite enklare markera text där man svarar i en befintlig brevväxling.

 

Citat

Hej!

Se nedan.

 

Varför....

Därför...



Men...

Ja...

 

osv

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Ahha. Jag har aldrig haft "utvecklare" framme i Outlook och fick för mig att det var ganska stängt. Men där ser man vilka konstiga fördomar man kan ha. 

 

Det här verkar för övrigt vara en klartextlista med words wdColour-konstanter:

https://docs.microsoft.com/en-us/office/vba/api/word.wdcolorindex

Jag antar att man måste hämta hem konstanterna till VBA på något sätt när man anropar från outlook.

Men det ligger långt utanför min kompetens-zon. Där får vi hoppas att Anjuna Moon eller någon annan kan svara (eller också kör du med siffervärden).

 

Redigerad av MH_resurrected

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

wdYellow =konstant mellan -1 till 16. Motsvarar förmodligen de 15 färger du får fram när du väljer understrykningsfärg i word/outlook + 2 specialare av något slag. Jag misstänker att de faktiska färgerna ändas om du ändrar färgtema.

https://docs.microsoft.com/en-us/office/vba/api/word.wdcolorindex

 

vbYellow=RGB(0, 255, 255)

"hårdkodade" färger. 

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/color-constants

 

Kollar man words hjälp så verkar det vara ColorIndex som gäller, även för font.

https://docs.microsoft.com/sv-se/office/vba/api/word.font.colorindex

 

Jag vet inte om Font.color bara finns kvar för bakåtkompabilitet. Eller för personer med kontrollbehov.  Words macroinspelare spelar tyvärr inte in något när man ändrar färg på text. Så där får man ingen ledtråd.

 

spelar man in I excel blir det temahantering:

Selection.Font.ThemeColor = xlThemeColorAccent2

Men det går fortfarande att köra:

Selection.Font.Color = vbRed

 

Jag antar att det är någon förändring design-filosofi som vi användare tar för givet och alla utvecklare är medvetna om. 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...