Я создал нумерованный список в Word 2010. У каждого элемента списка также есть изображение. Я хочу выровнять все изображения по центру, но когда я пытаюсь выровнять изображение по центру, текст над ним также центрируется.
Как выровнять изображения в списке по центру, не центрируя текст сверху и снизу?
решение1
Хорошо, вот что нужно сделать:
- Щелкните правой кнопкой мыши по изображению и выберите «Размер и положение...».
- Выберите вкладку «Обтекание текстом»
- Выберите «Верх и низ»
- Выберите вкладку «Позиция»
- В разделе «Горизонтально» выберите «Выравнивание», а затем выберите «По центру» относительно «Столбца».
К сожалению, сделать это для нескольких изображений проблематично. Format painter не будет работать. Кроме того, простое использование Macro Recorder вызывает проблемы при попытке выбрать изображение.
Итак, создание макроса VBA и привязка его к клавише, похоже, единственный способ сделать это суперэффективным. Вот два полезных поста по этому поводу:
- https://groups.google.com/forum/?fromgroups=#!topic/microsoft.public.word.vba.general/j4ZaBiOYKDU
- https://stackoverflow.com/questions/9809475/insert-resize-and-relocate-image-using-a-microsoft-word-macro
Из первой из этих ссылок я протестировал следующий макрос VBA. Кажется, работает отлично!
Sub FormatMyPicture()
Dim myShape As Shape
If Selection.InlineShapes.Count > 0 Then
Set myShape = Selection.InlineShapes(1).ConvertToShape
ElseIf Selection.ShapeRange.Count > 0 Then
Set myShape = Selection.ShapeRange(1)
Else
MsgBox "Please select a picture first."
Exit Sub
End If
With myShape
.WrapFormat.Type = wdWrapTopBottom
.WrapFormat.DistanceTop = InchesToPoints(0.2)
.WrapFormat.DistanceBottom = InchesToPoints(0.2)
.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
.Left = wdShapeCenter
End With
End Sub
решение2
Чтобы выровнять все встроенные изображения по центру в MS Word:
Шаг 1: Нажмите Alt+ F11, чтобы открыть редактор VBA
Шаг 2: Идти кInsert
затемModule
Шаг 3: В редакторе VBA введите следующий фрагмент кода
Sub centerPictures()
Dim shpIn As InlineShape, shp As Shape
For Each shpIn In ActiveDocument.InlineShapes
shpIn.Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next shpIn
For Each shp In ActiveDocument.Shapes
shp.Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next shp
End Sub
Шаг 4: Нажмите F5или нажмитеRun Sub
чтобы применить это изменение
решение3
Надеюсь, это поможет кому-то особенному.
Sub rezize_center_newline()
Dim i As Long
Dim shpIn As InlineShape, shp As Shape
With ActiveDocument
For i = 1 To .InlineShapes.Count
With .InlineShapes(i)
.Height = InchesToPoints(4)
.Width = InchesToPoints(5.32)
.Range.InsertAfter Chr(13)
End With
Next i
For Each shpIn In ActiveDocument.InlineShapes
shpIn.Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next shpIn
For Each shp In ActiveDocument.Shapes
shp.Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next shp
End With
End Sub