11. oktober 2023 - 09:51Der er
10 kommentarer og 1 løsning
Skrift på makroknap bliver større og større
Hej,
Jeg har levet en makroknap, som automatisk sender en mail til nogle modtagere, som er angivet. Alt fungerer perfekt på nær, at selve fonten på knappen vokser hver gang jeg klikker på den, så det til sidst er umuligt at læse, hvad der står.
Jeg mener, at denne "bug" knytter sig til kontrolelementer og/eller de tilsvarende ActiveX-objekter.
Jeg har tidligere arbejdet omkring det ved at tilføje kode i makroen, som afslutter med at sætte bredden og højden på knappen til de ønskede størrelser.
Jeg er gået over til at anvende figurer i stedet og så tilknytte makroen dertil. Jeg ved godt, at "tryk-knaps-følelsen" forsvinder, men det er jeg villig til at ofre :-) Til gengæld kan man bruge figur-effekter med skygge osv.
Øv ja, og jeg har ikke hørt om, at det er blevet udbedret fra Microsofts side af. Men du kan forhindre det med en af de to work-arounds, jeg har nævnt. Jeg kan godt hjælpe med at tilføje kode i makroen, der sætter højde/bredde og tekststørrelse til det ønskede, hvis du copy/paster makroen her.
Lyder godt. Jeg er en almindelig bruger uden den store forståelse for makroer, så jeg har faktisk fået ChatGPT til at hjælpe mig med at skrive makroen. Her er den:
Sub SendEmailWithAttachment() Dim OutApp As Object Dim OutMail As Object Dim wsSource As Worksheet Dim wsDest As Worksheet Dim rngSource As Range Dim RecipientList As String Dim FilePath As String
' Definer kildeark og målark Set wsSource = ThisWorkbook.Sheets("Nomination") Set wsDest = ThisWorkbook.Sheets("Recipients")
' Definer kildeområde (søjler A til I) Set rngSource = wsSource.Range("A:I")
' Definer stien til den midlertidige Excel-fil FilePath = Environ("TEMP") & "\TemporaryFile.xlsx"
' Deaktiver advarsler om overskrivning Application.DisplayAlerts = False
' Kopier data til midlertidig fil rngSource.Copy Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs FilePath ActiveWorkbook.Close
' Definer modtagere fra Recipients, søjle A RecipientList = Join(Application.WorksheetFunction.Transpose(wsDest.Range("A1:A" & wsDest.Cells(Rows.Count, 1).End(xlUp).Row).Value), ";")
' Opret en Outlook-applikation Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
' Definer filnavnet for den vedhæftede fil Dim AttachmentFileName As String AttachmentFileName = "Nomination HySynergy.xlsx"
' Opret mail With OutMail .To = RecipientList .Subject = "Nomination for HySynergy" .Body = "This is Everfuels nomination for HySynergy. The nomination date can be found on the excel sheet" .Attachments.Add FilePath, 1, 1, AttachmentFileName .Send End With End Sub
Først skal vi finde de størrelser, du ønsker. Når knappens størrelse er, som den skal være, så kør denne makro og skriv tallene ned fra den besked-boks, som vises:
Sub sub_ole_obj_get() Dim obj As Object For Each obj In ActiveSheet.OLEObjects If obj.Name Like "CommandButton*" Then With obj MsgBox "Tekststørrelse = " & .Object.Font.Size & vbNewLine & vbNewLine & _ "Knap-bredde = " & .Width & vbNewLine & vbNewLine & _ "Knap-højde = " & .Height, , .Name End With End If Next obj End Sub
Herefter skal du indsætte følgende kode i bunden af din nuværende makro før "End Sub":
Dim obj As Object For Each obj In ActiveSheet.OLEObjects If obj.Name Like "CommandButton*" Then With obj .Object.Font.Size = [skriv ønsket størrelse på tekst] .Width = [skriv ønsket bredde f.eks. 100.5] .Height = [skriv ønsket højde f.eks. 150.8] End With End If Next obj
Dine værdier/størrelser skal IKKE stå i kantet parentes [ ] men blot lige efter lighedstegnet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.