Макросы
Макросы
Таблицы: Добавление колонок слева и справа в таблицы со слитыми ячейками
Рубрика: Макросы | Таблицы WordМетки: макросы | таблицы
Дата: 14/04/2011 09:01:53
VBA-addict, активный участник нашего форума, предложил свое решение по таблицам. Публикую это решение также и здесь. Вопросы можете задавать автору заметки как в комментариях, так и на форуме.
При попытке добавления в таблицу со слитыми ячейками колонок слева и справа часто возникают проблемы связанные с тем, что ячейкам колонки присваивается ширина соседних ячеек. Соответственно, если ширина у них разная - таблица разлетается в столбчатую диаграмму.
Не найдя полностью готового решения в сети скомпилировал свое. Работает на текущей таблице под курсором.
Для добавления слева и справа код несколько отличается, т.к. при добавлении слева всегда ссылка идет на первую ячейку строки, которая есть всегда, а справа - на последнюю, номер которой может отличаться из-за слитых ячеек.
Sub AddCol2LeftMergedCTable()
If Selection.Range.Information(wdWithInTable) = False Then Exit Sub
With Selection.Tables(1)
TblRowsNumber = .Rows.Count
NewColumnWidth = InputBox$("Enter the width in millimeters for the Column to add", _
"Add column to the LEFT for a table with merged cells", _
NewColumnWidth)
If Val(NewColumnWidth) = 0 Then Exit Sub
For i = 1 To TblRowsNumber
.Range.Cells.Add BeforeCell:=.Cell(i, 1)
.Cell(i, 1).Width = MillimetersToPoints(NewColumnWidth)
Next
End With
Selection.MoveDown
End Sub
Sub AddCol2RightMergedCTable()
If Selection.Range.Information(wdWithInTable) = False Then Exit Sub
With Selection.Tables(1)
TblRowsNumber = .Rows.Count
NewColumnWidth = InputBox$("Enter the Width in millimeters" & vbCrLf & "for the Column to add", _
"Add column to the RIGHT for a table with merged cells", _
NewColumnWidth)
If Val(NewColumnWidth) = 0 Then Exit Sub
For i = 1 To TblRowsNumber
LastColNum = .Rows(i).Cells.Count
.Rows(i).Cells(LastColNum).Select
Selection.MoveRight
Selection.InsertCells ShiftCells:=wdInsertCellsShiftRight 'добавляем ячейку'
Selection.Cells.Width = NewColumnWidth
Next
End With
Selection.MoveDown
End Sub
Дмитрий спрашивает:
В этом случае вы можете воспользоваться следующим макросом:
Обработка графики в Microsoft Word средствами VBA
Рубрика: Сайты | Макросы | Шаблоны Word | Советы и cекретыМетки: inlineshape | shape | графика | макросы | шаблоны
Дата: 18/04/2010 16:34:57
Марк Розенберг, один из авторов рекомендуемой мною книги , написал очень познавательную статью под названием "Обработка графики в Microsoft Word средствами VBA". Вот ссылка на статью: http://markros.ru/graphics/.
В своей статье Марк приводит исчерпывающие сведения о графических объектах Shape и InlineShape. Кроме того, к статье прилагаются образцы учебных макросов и шаблон EachShape, который позволяет выделить все графические объекты в активном документе и вывести информацию о каждом из них.
Рекомендую ознакомиться со статьей всем, кто работает с графикой в редакторе Word и хотел бы узнать об особенностях и возможностях программирования на VBA для графических объектов.
О форматировании отдельных символов
Рубрика: Макросы | Стили и форматированиеМетки: макросы | форматирование
Дата: 18/04/2010 08:46:29
Юрий интересуется:
Существует ли способ переключить начертание, чтобы те буквы (не слова), что были жирными, стали обычными, а обычные - жирными?
Юрий, вот примеры макросов для ваших целей, подсказанные .
Проверка орфографии и сохранение по запросу
Рубрика: Вопрос-Ответ | МакросыМетки: AutoClose | FileSave | автосохранение | макросы | орфография
Дата: 24/03/2010 12:51:00
Максим задал вопрос:
Можно ли сделать так, чтобы word 2007 перед тем, как я собрался сохранить или выйти из документа, автоматически меня спрашивал - проверить ли орфографию и чтобы после проверки орфографии еще спрашивал - сохранять документ или нет?
Вот пример мини-программы (состоит из трех отдельных макросов). Подключите их к шаблону Normal.dotx и при сохранении, или при закрытии документа будет выводиться запрос.
Вставка документа с книжной ориентацией в документ с альбомной ориентацией
Рубрика: Вопрос-Ответ | Макросы | Стили и форматированиеМетки: макросы | разрывы
Дата: 23/02/2010 10:55:08
Сергей интересуется:
Второй документ - основной. В нем имеется несколько страниц с разлиным форматированием листа, т. е. есть листы книжной раскладки, есть листы альбомной раскладки. И начинается 2-ой документ как раз с альбомного листа.
Вопрос: Как мне вставить лист из 1го документа во второй, таким образом чтобы при вставке этот лист не изменял автоматически свою ориентацию на альбомную?
Сергей, решить эту проблему можно с помощью макроса.
Вам нужно открыть ваш основной документ (2-й документ), запустить макрос, выбрать нужный файл и он будет вставлен в качестве 1-й страницы книжного формата вашего основного документа.
Вот код макроса:

Поиск
Рубрики
Подписка
Читают
Обсуждают
Форум
страницы
сайты
статистика