Just nu i M3-nätverket
Jump to content

Parantes runt kursiverad text


lebn

Recommended Posts

Hej

Någon som vet hur man skapar paranteser runt kursiverad text?

Om jag använder (^&) i rutan Ersätt med:så får jag den sista parantesen på raden under

om texten med kursiverad text avslutas med radbyte.

Ett exempel blir så här:

 

Informationstext och ex:

(denna rad är kursiverad

)

Och den här raden är ny informationstext

 

Jag vill naturligtvis att exemplet ska se ut så här:

 

Informationstext och ex:

(denna rad är kursiverad)

Och den här raden är ny informationstext

 

Jag använder Word 2003. Tacksam för hjälp!

/Leif

Link to comment
Share on other sites

Robin Sundsvall

Hej Lebn

 

 

Förklaringen är aningen diffus och kan bero på en massa orsaker. För att enklast hjälpa dig följ denna miniguide till punkt och pricka.

 

Nedan är två vyer:

[log]Steg 1

Arkiv - Utskriftsformat

(Arkiv finns allra högst upp i vänstra hörnet, välj "Utskriftsformat...")

Ställ in följande...

Överkant, Nederkant, Vänster, Höger = 2,5 cm

Fästmarginal = 0 cm

Färstmarginalplacering = Vänster

Tryck OK.[/log]

[log]Steg 2

Stycke (Högerklicka på den vita arbetsytan, dokumentet, i menyn välj "Stycke..."

Ställ in följande...

Justering = Vänster

Dispositionsnivå = Brödtext

Indrag vänster,höger = 0

Special = Inget

Med = blank

Spegelindrag = nej

Avstånd före,efter = 0 pt

Radavstånd = enkel

Vid = blank[/log]

Notera att jag använder Microsoft Office 2010. Säger jag något alternativ som inte syns så hoppa över det. Word 2003 är en äldre version.

 

Låt mig få höra hur det gick, om det blev något bättre eller sämre så tar vi det därifrån :-)

Lycka till!

Link to comment
Share on other sites

Hej Robin,

Tack för svar. Tyvärr blev jag inte klokare av det. De inställningar du anger

är redan inställda exakt så.

Jag tror problemet är att jag manuellt radbrutit efter rad eller rader med kursiverad

text, och sedan har jag inte normal ställt texten förrän på nästa rad igen, så enda lösningen ligger så vitt jag förstår i ett script, där man kan skriva in att slutparentesen för varje kursiverat stycke skall ligga direkt efter sista tecken, inte efter formateringen som fortsätter på nästkommande blanka rad.

Kan du VBA? Om du kan - mkt tacksam för ett fungerande script/makro.

Hälsningar

Leif

Link to comment
Share on other sites

Robin Sundsvall

Hej igen

 

Jag tvivlar starkt på att du ska behöva använda dig av något makroskript för att få det här att funka.

Låter som ett mycket simplare problem. En inställning eller något.

 

Här är ett citat jag hittade på ett annat forum. Det gäller dock Word 2007. Om det här kan vara intressant skall jag fortsätta leta i liknande problem.

2008-04-28 08:53

Vet inte om detta funkar även i Office 2003 el tidigare, men i Office 2007 lyckades jag lösa det relativt enkelt.

Texten hamnar så här, men jag vill att texten ska fylla ut hela raden inte bara ligga i en smal kolumn.

När du har texten i Word, tryck Ctrl+B.Välj fliken "Ersätt". Längst ner på knappen "Special" väljer du "Manuell radbrytning". Då får du ett "^" i rutan "Sök efter". I rutan "Ersätt med" satte jag ett "blanksteg".Till sist klicka på knappen "Ersätt alla".

Voilà! :-)

 

 

Lycka till!

Link to comment
Share on other sites

Robin Sundsvall

Om dunu ändå verkligen vill ta det på sin kant, så finns det en sida som utförligt förklarar hur du programmatiskt kan styra word.

http://www.proffs.nu/support/kkword.asp

 

Du kan söka till texten "Använd alltid konstanten vbCrLf (motsvarar Chr(13) & Chr(10)) för att göra en radbrytning".

Lycka till, igen!

Link to comment
Share on other sites

Hej Robin

Det är verkligen bussigt av dig att engagera dig, men du är på fel spår. Om du programmerar, vilket jag inte gör, tyvärr, så kan du hjälpa mig kanske, annars inte.

Det handlar inte om att hitta special tecken, det har jag försökt till förbannelse själv. Och den vägen är stängd - det funkar inte.

Det måste till kod, som avläser var text tar slut och där insätter slutparentes, och inte på nästkommande rad, där kursiv formatering tar slut.

Bästa hälsningar

Leif

Link to comment
Share on other sites

Hej,

 

Nu sitter jag med Word 2007, men jag tror att Sök&Ersätt dialogen är densamma i 2003.

I dialogen har du möjlighet att söka på och ersätta olika format, typ kursiv text, men även specialtecken som radbrytning. Som jag förstår det är problemet att kursiv-märkningen även innefattar radbrytningstecknet och det går att lösa genom att först söka/ersätta kombinationen kursiv&radbrytning med oformaterad radbrytning. Sedan borde din ursprungliga metod fungera.

 

Hälsningar

/Johan

Link to comment
Share on other sites

Robin Sundsvall

Hej hej

 

Det finns ett sätt som vi inte har nämnt tidigare som är enklare än ett makro. "Ändring i dokumentmallen". Där kan du ställa in när radbrytning ska göras och det är en fysisk ändring som väger tyngre än det vi har prövat tidigare. Dvs har störra chans än att gå in i word - utskriftsformat och ändra måtten där. Kom dock ihåg att detta är e ändring i standaren så kopior/backup skulle rekommenderas.

 

Om det här låter intressant kan du få en guide för hur du gör det också. wink.gif

 

 

Lycka till!

Link to comment
Share on other sites

Hej

Nej, det är inte aktuellt. Men igen - om du kan programmering, som du inte svarat mig på, kan du här se ett enkelt script, det funkar om jag markerar den kursiverade texten

för ett avsnitt. Men jag vill ju kunna få HELA DOKUMENTET att söka och ersätta kursiverade text fram till manuell radbrytning, med parentes före första kursiverade ordet och direkt efter sista kursiverade ordet inom resp stycke. Här är scriptet:

 

Sub Parantes_Egen()

 

Selection.InsertBefore "("

Selection.EndKey Unit:=wdLine

Selection.TypeText Text:=")"

 

End Sub

Tyvärr kan jag inte programmering, så jag vet inte hur jag ska utveckla detta så att det omfattar hela dokumentet.

 

Hälsningar

Leif

Link to comment
Share on other sites

Din tråd i VBA har jag raderat, vi gillar inte när man sprider ut sig över forumet.

 

VBA i Word är inte enkelt, inte alls lika rättframt som i Excel.

 

men efter lite detektivarbete så:

Sub Parentes()
Dim ph As Paragraph
For Each ph In Me.Paragraphs
 	If ph.Range.Characters(1).Font.Italic = True Then
   	ph.Range.InsertBefore "("
   	ph.Range.Characters.Last.InsertBefore ")"
 	End If
Next ph
End Sub

Kollar första tecknet i varje paragraf, om det är italic infogas en parentes i början och i slutet.

 

Så som du önskar.

Link to comment
Share on other sites

Robin Sundsvall

Nu var det ruggigt längesen jag satt och labbade med makron men jag kan göra mitt bästa.

 

 

Sub Parantes_Egen()

 

Selection.InsertBefore "("

Selection.EndKey Unit:=wdLine

Selection.TypeText Text:=")"

 

End Sub

 

För att detta ska gälla hela dokumentet kan du skapa ett händelsemakro.

Nu har inte jag det skriptet i ryggmärgen men det ska vara något i stil med

 

Sub On_Enter()

 

 

Känns dock inte som den bästa lösningen, ska skriva ihop en annan sträng som kan fungera bättre än det där visual basic alternativet, när jag kommer hem.

 

Det är inte mycket men just nu det det bästa jag kan göra.

 

Lycka till och på återseende!

Link to comment
Share on other sites

Hej Moderator,

 

Sorry, tanklöst av mig, men i desperation tänker man inte klart.

Hursomhelst, din kod stoppar på raden:

For Each ph In Me.Paragraphs - där begreppet Me får upp ett felmeddelande.

Vet du någon lösning?

Mvh

Leif

Link to comment
Share on other sites

Kopiera in koden och spara den på ThisDocument-objektet i VBA-editorn. Då fungerar den. Eller ändra Me-referens till något annat som refererar till aktuellt dokument som exempelvis

ActiveDocument.Paragraphs

Link to comment
Share on other sites

Äntligen!!

Jag kombinerade din nya rad med följande, och fick då allt att funka!!

Stort tack!

Leif

 

Sub Parentes()

Dim ph As Paragraph

For Each ph In ActiveDocument.Paragraphs

If ph.Range.Characters(1).Font.Italic = True Then

ph.Range.InsertBefore "("

ph.Range.Characters.Last.InsertBefore ")"

End If

Next ph

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find

.Text = "()"

.Replacement.Text = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

Selection.Find.Execute Replace:=wdReplaceAll

End Sub

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...