Добрый день!
Попался мне документ, в котором я не смог изменить поле снаружи (Параметры страницы - Поля: снаружи (2 см) - Применить для всего документа). А всему виной оказались колонки, которые созданы в одном из разделов, но не видны. Я очень долго их искал, чтобы удалить.
Можно ли как-то найти такую структуру макросом (найти текст в колонках)? Или найти как-то еще такой сбойный раздел, где невозможно изменить размер полей. Пример приложил. Если нельзя макросом, то посоветуйте пожалуйста, как быть.
[вложение удалено администратором]
Если в файле не должно быть колонок, то можно удалить колонки: вкладка "Макет" - Колонки - Другие столбцы... - выберите "Одна" - выберите "Ко всему документу".
А затем меняйте поля.
Цитата:
Или найти как-то еще такой сбойный раздел, где невозможно изменить размер полей.
Не знаю, как такое сделать, для меня это сложная задача.
Вообще, найти раздел, в котором есть колонки, наверное можно с помощью макроса.
Спасибо!
Как удалить колонки - я знаю. А вот найти их я сразу не смог. Будет удобно, если такую операцию сможет сделать макрос. Надеюсь на Вашу помощь!
Макрос отображает информацию о колонках в новом пустом файле.
Макрос
Sub макрос()
Dim doc_res As Document, res As Collection
Dim sec As Section, i As Long
'1. Создание коллекции, в которую запишутся данные.
Set res = New Collection
'2. Запись в коллекцию информации по колонкам.
' Цикл по всем разделам файла.
For Each sec In ActiveDocument.Sections
' Если в разделе есть колонки.
If sec.PageSetup.TextColumns.Count > 1 Then
' Запись в коллекциию номера страницы и номера раздела, где находятся колонки.
res.Add Item:=sec.Range.Characters(1).Information(wdActiveEndPageNumber) & " / " & sec.Index
End If
Next sec
'3. Если нет колонок, то выход из макроса.
If res.Count = 0 Then
MsgBox "Колонок нет.", vbInformation
Exit Sub
End If
'4. Отображение результата на мониторе.
' Создание пустого файла и присваиваивание ему имени "doc_res".
Set doc_res = Documents.Add
' Запись заголовка, чтобы юзер понимал, что означают числа.
doc_res.Range.InsertAfter "страницы / разделы" & Chr(13)
' Копирование данных из коллекции в ворд-файл.
For i = 1 To res.Count
doc_res.Range.InsertAfter res(i) & Chr(13)
Next i
'5. Сообщение.
MsgBox "В файле есть колонки." & vbCr & "Информация о колонках отображена в активном файле.", vbExclamation
End Sub
Супер! Проверил.
Нашел еще одни лишние колонки у себя в документе там, где даже и не думал!
Огромное спасибо!