delphi - tipos - Reemplazar viñetas con guiones en un documento de Word
viñetas en word ejemplos (3)
¿Es esto lo que estás intentando?
Option Explicit
''~~> Select the relevant range before running this code
Sub Sample()
With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1)
.NumberFormat = ChrW(61485)
.TrailingCharacter = wdTrailingTab
.NumberStyle = wdListNumberStyleBullet
.NumberPosition = InchesToPoints(0.25)
.Alignment = wdListLevelAlignLeft
.TextPosition = InchesToPoints(0.5)
.ResetOnHigher = 0
.StartAt = 1
.Font.Name = "Symbol"
.LinkedStyle = ""
End With
ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:= _
False, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:= _
wdWord10ListBehavior
End Sub
INSTANTÁNEA
Estoy tratando de reemplazar las viñetas de una lista en un documento de Word con guiones, básicamente solo el "ícono renderizado" para ser reemplazado, es decir,
Reemplazar viñetas de la lista a continuación:
este es un elemento de la lista
este es otro elemento de la lista
otro artículo
con guiones:
- este es un elemento de la lista
- este es otro elemento de la lista
- otro artículo más
Voy a hacer esto usando ActiveX en Delphi, pero el código VB también lo haría, ¡gracias!
Dentro del código Delphi :
uses ..., ComObj;
const
wdListNumberStyleBullet = 23;
var
vMSWord : variant;
Doc : Variant;
oListTemplate : Variant;
oListLevel : Variant;
iLoopTemplates, iMaxTemplates: Integer;
iLoopLevels, iMaxLevels : Integer;
begin
try
vMSWord := GetActiveOleObject(''Word.Application'');
vMSWord.Visible := True;
Doc := vMSWord.ActiveDocument;
iMaxTemplates := Doc.ListTemplates.Count;
for iLoopTemplates := 1 to iMaxTemplates do
begin
oListTemplate := Doc.ListTemplates.Item(iLoopTemplates);
iMaxLevels := oListTemplate.ListLevels.Count;
for iLoopLevels := 1 to iMaxLevels do
begin
oListLevel := oListTemplate.ListLevels.Item(iLoopLevels);
if (oListLevel.NumberStyle = wdListNumberStyleBullet)
and (oListLevel.NumberFormat = UTF8String(#61623))
and (oListLevel.Font.Name = ''Symbol'') then
// if (oListLevel.NumberStyle = wdListNumberStyleBullet) then
begin
oListLevel.NumberFormat := UTF8String(''-'');
oListLevel.Font.Name := ''Arial'';
end;
end;
end;
except
ShowMessage(''Open a Word document before running this method'');
end;
El IF actual está comprobando si realmente es una • bala con un •
Si no necesita este control, comente esta línea ( si ... ) y elimine el comentario de la siguiente ...
Una macro que hace el trabajo ...
Dim oListTemplate As ListTemplate
Dim oListLevel As ListLevel
For Each oListTemplate In ActiveDocument.ListTemplates
For Each oListLevel In oListTemplate.ListLevels
If oListLevel.NumberStyle = wdListNumberStyleBullet Then
With oListLevel
.NumberFormat = "-"
.Font.Name = "Arial"
End With
End If
Next oListLevel
Next oListTemplate