Убрать незадействанное пространство у документа

Автор Ципихович Эндрю, 7 мая 2024, 11:45

0 Пользователи и 1 гость просматривают эту тему.

Ципихович Эндрю

здравствуйте на рисунке показал незадействованные пространства - область 1 и область 2 монитор у меня 28 дюймов, масштаб 170% - указан в правом нижнему углу, мне нужно программно кодом ВБА:
убрать область 1 и тогда область 2 увеличится по ширине в два раза
или
убрать область 2 и тогда область 1 увеличится по ширине в два раза
спасибо
ОС ПК вин10
сорри на рисунке ворд - но в либре всё идентично

economist

Вид - Масштаб - Масштаб - Колонки - 2 (см. рис.)

Но только это пространство все равно останется незадействованным. Мне кажется что там самое место Стилисту по F11.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

Цитата: economist от  7 мая 2024, 13:06Стилисту по F11
не в курсе что это за стилист?
2 спасибо вроде самое то, подскажите как это сделать?

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

Цитата: economist от  7 мая 2024, 13:06Вид - Масштаб - Масштаб - Колонки - 2
сорри не увидел это, рисунок всё затмил))
а программно это можно сделать? спасибо

economist

Пробуйте макрорекордер, авось Диспетчер что-то уловит. Вариантов кликов много, собрать рабочее сочетание наверняка можно, потратив на это несколько дней.

Меня не покидает ощущение что здесь X/Y-проблема, то есть вам нужно совсем не то что вы спрашиваете, а рассказать правду вы не хотите. Прошлые рассказы я не понял, ну кроме того что можно попробовать квадратный монитор, он прекращает бесконечный поиск лучшего соотношения сторон и его ориентации портрет/альбом. Instagram так и сделал в свое время - квадратные фото умиротворили два негодующих холма перфекционизма.

Если вам нужно сделать необычный или удобный интерфейс для чего-то в LibreOffice - mission impossible. Делайте как все, просто, топорно, как получится. Лучший интерфейс, по мнению большинства моих респондентов, - "Волшебная кнопка". Вот ее-то родимую, можно вкарячить прямо в документ. Я для бизнес-приложений не делаю диалогов, их сложно кодить, проще реализовать "Форму" прямо поверх документа или на первом/последнем листе. Объем кода сокращается точно в ~2 раза.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Ципихович Эндрю

посмотрите пожалуйста, ничего лишнего, короче не написать:
Sub SetTwoColumns
    Dim oDoc As Object
    Dim oViewCursor As Object
    Dim oParagraph As Object
    Dim oRange As Object
    Dim oStart As Object
    Dim oEnd As Object
   
    ' Получить текущий документ и создайте новый курсор просмотра
    oDoc = ThisComponent
    oViewCursor = oDoc.CurrentController.ViewCursor
   
    ' Установить курсор просмотра в начало документа
    oViewCursor.gotoStart(False)
   
    ' Пробежаться по всем абзацам документа
    Do While Not oViewCursor.goRight(1, False) = -1
        ' Получить текущий диапазон абзаца
        oRange = oViewCursor.Text.CreateTextCursor()
        ' Получить начальную и конечную позиции диапазона
        oStart = oRange.getStart()
        oEnd = oRange.getEnd()
        ' Создать текстовый курсор для диапазона
        oRange = oDoc.Text.createTextCursorByRange(oStart, oEnd)
        ' Получить родительский абзац диапазона
        oParagraph = oRange.getStart().getText().getParent()
        ' Установить количество столбцов 2
        oParagraph.Columns.ColumnCount = 2
        ' Переместить курсор просмотра на следующий абзац
        oViewCursor.gotoNextParagraph(False)
    Loop
End Sub
этот макрос сместит холст документа влево, а вправо можно? как?

Ципихович Эндрю

как выяснилось код в сообщении 6 работает, если в документе есть текст, а если он пустой то будет ошибка, как это исправить?
ну и в планах код сделать с проверкой:
        ' Проверить, равно ли количество столбцов 2
        If oParagraph.Columns.ColumnCount = 2 Then
            ' Если количество столбцов = 2 установить количество столбцов = 1
            oParagraph.Columns.ColumnCount = 1
        Else
            ' В противном случае установить количество столбцов равным 2
            oParagraph.Columns.ColumnCount = 2
        End If

Ципихович Эндрю

одним словом один раз удалось программно это сделать и тот же самый код более не делает - мистика какая-то))
может кто подсказать как убрать незадействанное пространство у документа с проверкой:
' Проверить, равно ли количество столбцов 2
        If oParagraph.Columns.ColumnCount = 2 Then
            ' Если количество столбцов = 2 установить количество столбцов = 1
            oParagraph.Columns.ColumnCount = 1
        Else
            ' В противном случае установить количество столбцов равным 2
            oParagraph.Columns.ColumnCount = 2
        End If
спасибо

bigor

Мне кажется вы не в ту дверь ломитесь. Это не те колонки, о которых economist писал в #1
Поддержать наш форум можно здесь

Ципихович Эндрю

Цитата: bigor от  7 мая 2024, 20:22Мне кажется вы не в ту дверь ломитесь. Это не те колонки, о которых economist писал в #1
ну да, и я увидел, что слишком многовато кода в сообщении 6, по идее должно это:
Sub SetTwoColumns
    Application.ActiveDocument.PageSetup.Columns.ColumnCount = 2
End Sub
но увы
Ошибка времени выполнения Basic.
Объектная переменная не установлена.
не подскажете как исправить?

bigor

Цитата: Ципихович Эндрю от  7 мая 2024, 20:34не подскажете как исправить?
Нет. Не знаю. Диспатчер выбор колонок игнорирует.
Поддержать наш форум можно здесь

Ципихович Эндрю

Цитата: economist от  7 мая 2024, 13:06Вид - Масштаб - Масштаб - Колонки - 2
а это давно так было?
а то в ворде 2013 появилось что подобное, а в 2007 не было-а в либре как обстоят дела с этим?

sokol92

В этом сообщении Питоньяка показано, как устанавливать различные виды просмотра страниц документа программным путем (спасибо Михаилу за ссылку).
Владимир.

Ципихович Эндрю