Скроллинг позади msgbox.

Автор Kerby, 17 марта 2026, 20:37

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

Kerby

Здравствуйте.
Открываю макросом из одного документа calc другой.
Вношу изменения во второй и по результату выдаю msgbox с информацией о внесенных изменениях перед закрытием.
Прокрутка по документу за msgbox ом не работает, а хотелось бы прокрутить по таблице- проверить правильность. Гугл рекомендует свою форму создавать вместо msgbox. Возможны альтернативные варианты? Интуитивно почему-то вариант своей формы не нравиться.

sokol92

Msgbox - функция Basic, которая вызывает модальный диалог. Интерфейс пользователя "замораживается", пока Вы не закроете диалог.

Какова Ваша цель?
Дать пользователю посмотреть на сделанные Вашим макросом изменения и после этого одобрить их? Может ли пользователь вносить какие-либо изменения или только смотреть?
В зависимости от цели могут быть реализованы различные средства, предоставляемые LibreOffice.
Владимир.

Kerby

В идеале пользователь посмотрел, что выдало окно. Поскролил по таблице для визуального контроля не внося изменения. Нажал ок и пошло выполнение далее. Если необходимы какие-то исправления, то их можно будет потом внести по необходимости. Сейчас происходит последовательная обработка многих файлов и этот msgbox своего рода режим debug-контроль, который иногда требуется.

Kerby

#3
Для себя так примерно решил:
Option Vbasupport 1
Option Explicit
Public Declare PtrSafe Function ModelessMsgBox Lib "User32" Alias "MessageBoxA" (Optional ByVal hWnd As Long, _
            Optional ByVal prompt As String, _
            Optional ByVal title As String, _
            Optional ByVal buttons As Long) As Long
           
Sub Main
Call ModelessMsgBox(prompt:="оно", buttons:=vbOKOnly+vbSystemModal)
End Sub
Мне подходит.