Hoe verschillende lettergroottes in verhouding vergroten?

Status
Niet open voor verdere reacties.

Pascal321

Gebruiker
Lid geworden
5 aug 2017
Berichten
198
Ik heb een chemische formule van een pdf gekopieerd naar een Word pagina. De elektronen worden in een kleiner lettertype weergegeven. Een beetje naar analogie met machten. Zie bijlage 1
Nu wil ik het lettertype van de volledige formule vergroten MAAR de elektronen moeten nog steeds in een kleiner lettertype staan dan de andere letters.
Ter verduidelijking:
In bijlage 1 zie je dat de elementen C H en N in hoofdletters staan en hebben een lettergrootte van 13 (Calibri Light). Maar de elektronen 10 14 en 2 staan in een kleinere lettergrootte nl 8,5 (maar ook in Calibri Light)
Is er nu een manier om in één keer alle letters te vergroten met een bepaalde zelfde factor zodat je nog steeds een verschil ziet in lettergroottes tussen de elementen en de elektronen? En je dus niet het resultaat uit bijlage 2 krijgt als je alles naar lettergrootte 14 brengt?

Ik weet, bij slechts 1 formule kan je dit gerust manueel doen, maar bij meerdere formules op 1 pagina is dat onbegonnen werk.
 

Bijlagen

  • bijlage 1.jpg.jpg
    bijlage 1.jpg.jpg
    2 KB · Weergaven: 63
  • bijlage 2.jpg.jpg
    bijlage 2.jpg.jpg
    3,6 KB · Weergaven: 62
Dat kan waarschijnlijk met VBA
Kan je een klein voorbeeld bestandje plaatsen, het liefst met meerdere chemische notaties en losse tekst erin.
Voldoen je chemische notaties aan het Hill-systeem?
 
Laatst bewerkt:
Hill-systeem? Oei, dat ken ik niet. Weet niet waarover je het hebt :eek:
In bijlage alvast een voorbeeld bestandje.
 

Bijlagen

  • Voorbeeld chemische formules.docx
    12,6 KB · Weergaven: 35
In module ThisDocument
Code:
Public Sub ChemischeFormule()
    aFind = Array("Mr\(*\) ", "m\(*\) ", "n\(*\) ")    'let op spaties aan het eind
    lScale = 2
    For iaFind = LBound(aFind) To UBound(aFind)
        Selection.GoTo wdGoToSection, wdGoToFirst
        With Selection.Find
            .ClearFormatting
            .MatchWildcards = True
            Do While .Execute(aFind(iaFind))
                For Each oChar In Selection.Characters
                    oChar.Font.Size = lScale * oChar.Font.Size
                Next
            Loop
        End With
    Next
End Sub
 
Thx, maar euh...moet ik die code ergens ingeven of zo? Want van VBA heb ik geen kaas gegeten :eek:
 
Zie bijlage

1. Toets ALT+F8;
2. Selecteer "ChemischeFormule";
3. Klik "Uitvoeren".

Toets (linker)ALT+F11 om de code te zien en eventueel aan te passen.
 

Bijlagen

  • Voorbeeld chemische formules.docm
    15,3 KB · Weergaven: 40
Laatst bewerkt:
Ok, thx.
Maar nu kan ik blijkbaar zelf niet kiezen met welke factor de hele tekst groter moet worden?
En hoe moet ik deze macro nu toepassen op andere documenten met formules? Hoe kan ik dus maw deze vba integreren in andere documenten?
 
Maar nu kan ik blijkbaar zelf niet kiezen met welke factor de hele tekst groter moet worden?

  1. Toets (linker)ALT+F11
  2. Pas
    Code:
    lScale = 2
    aan (2 = 2keer zo groot)

En hoe moet ik deze macro nu toepassen op andere documenten met formules? Hoe kan ik dus maw deze vba integreren in andere documenten?
Heb je meerderen bestanden open staan die op dezelfde manier aangepast (schaal) moeten worden?
of
Heb je meerderen bestanden open staan die op verschillende manieren (schalen) aangepast moeten worden?
 
Laatst bewerkt:
Ik zie nu wel dat enkel de formules worden vergroot en niet de rest van de tekst?
 
Was dat dan niet je vraag uit bericht#1, toch alleen de chemische formules vergroten/verkleinen?
 
Laatst bewerkt:
Er is ook een invoegingstoepassing voor Word om het heel simpel te doen.
Heb het even in een Word doc gezet met een voorbeeld.
Getest voor Word 2016, maar het bestaat al veel langer.
De nieuwere Word versies heb ik niet maar ik verwacht dat het werkt.
Als je een nieuwere versie hebt, meld even of het inderdaad werkt.
Tnx.
attachment.php
 

Bijlagen

  • Chemformatter.docx
    13,8 KB · Weergaven: 34
Laatst bewerkt:
@ alphamax: Mja, idd, mijn fout :eek: Was idd de bedoeling dat ook de andere tekst mee in verhouding vergroot.
Kan je dat nog aanpassen? :eek:
 
@route99: Nee, het werkt niet in Office 365 :-/
Installatie lukt maar de invoegtoepassing wordt niet weergegeven zodat ik ze dus ook niet kan aanvinken. :confused:
 
Heb je Word eerst wel herstart?
 
Dat maakt de code een stuk makkelijker.
Code:
Public Sub FontScale()
    lScale = 1.5
    Selection.WholeStory
    For Each oChar In Selection.Characters
        oChar.Font.Size = lScale * oChar.Font.Size
    Next
End Sub
Ik neem aan dat je nu al een beetje VBA-ervaring hebt zodat je de andere code kan vervangen door deze;)
Mocht het niet zo zijn laat het me dan even weten.
 
Ah, ik dacht juist dat het meer werk ging zijn. Des te beter zo :thumb: Sorry dan voor het overbodige werk daarvoor :eek:
Maar dit is idd wel wat ik zoek, thx! :thumb:

Nu alleen jammer dat ik het niet kan integreren in Word als vaste macro. Want hoe moet ik het nu aanpakken als ik later nog documenten heb waar hetzelfde moet gebeuren?
 
Ok, gelukt!
En stel dat ik één keer te veel vergroot heb en ik wil terug kleiner maken wat moet ik dan in de macro veranderen? Of eventueel een nieuwe macro aanmaken die niet vergroot maar verkleint?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan