визуальное выделение строки и столбца содержащих выделенную ячейку

Автор snowbarsik, 24 июля 2014, 08:32

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

snowbarsik

бывает ситуации когда надо искать цифры буквы на одном конце таблицы и сопоставлять их с цифробуквами на другом - водить пальцем по монитору не удобно линейку тоже прикладывать не хорошо да и падает она с монитора - не держится силой мысли... вобщем есть ли какой способ выделить столбец и колонку в пересечении которых ткнулся мышкой ?
благодарю

kompilainenn

именно столбец и строку одновременно? имхо такого нет. Отдельно строку и отдельно столбец конечно можно...

зы: где-то я такую возможность видел (не для Либреофиса)...
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

rami

Я думаю, что для визуального сравнения лучше "Разбить" или "Фиксировать" окно. См. в меню "Окно"

kompilainenn

Цитата: rami от 24 июля 2014, 09:55
Я думаю, что для визуального сравнения лучше "Разбить" или "Фиксировать" окно. См. в меню "Окно"
можно конечно, только если все строчки забиты цифрами и буквами, да еще они все примерно похожие, очень удобно было бы или иметь раскраску таблицы через строку или так, как хотел бы ТС...
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Hasim

Вот так?
Global oListener As Object
Global oDocView As Object
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Выполните этот макрос для начала перехвата событий !!!
Sub Example_SelectionChangeListener
  Dim sName$
  oDocView = ThisComponent.getCurrentController
   ' создайте перехватчик для перехвата события "изменение выделения"
   sName = "com.sun.star.view.XSelectionChangeListener"
  oListener = CreateUnoListener( "MyApp_", sName )
   
  ' зарегистрировать этот перехватчик в контроллере документа
  oDocView.addSelectionChangeListener(oListener)
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Выполните этот макрос для прекращения перехвата событий
Sub Remove_Listener
  ' удаляет перехватчик
  oDocView.removeSelectionChangeListener(oListener)
End Sub

' Все  перехватчики должны поддерживать это событие
Sub MyApp_disposing(oEvent)
  msgbox "Вывод перехватчика (disposing the listener)"
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub MyApp_selectionChanged(oEvent)
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Dim lineindex As Object

oCell=oEvent.source

oDoc=ThisComponent
'oSheet = oDoc.CurrentController.getActiveSheet()
oSheet=oDoc.Sheets.getByName("Лист1")
Page = oSheet.DrawPage

oSelect = oDoc.CurrentSelection.getRangeAddress

oSelectAC = oSelect.StartColumn
oSelectAR = oSelect.StartRow   'используем только это, т.к. выделяем только одну ячейку
                        'остальные можно использовать для проверки на выбор не одной ячейки
oSelectZC = oSelect.EndColumn
oSelectZR = oSelect.EndRow

selcol=oSelectAC+1
selrow=oSelectAR+1
selcolend=1024
selrowend=1048576/1

oSheet.getCellRangeByName("$A1:$AZ10000").CellBackColor = -1

'Рисуем линии пересечения
oSheet.getCellRangeByPosition(0, selrow-1, selcol+15, selrow-1).CellBackColor = RGB(255,220,100)
oSheet.getCellRangeByPosition(selcol-1, 0, selcol-1, selrow+25).CellBackColor = RGB(255,220,100)

End Sub

snowbarsik

я к сожалению лишь юзер, а не программер
но как понимаю этот код нужно куда то вставить типа среды VB для ms ofice где это в openofice не знаю
можно краткую инструкцию или ссылку где это уже описано

Hasim

Вот пример.

Макрос Example_SelectionChangeListener повешен на событие Сервис-Настройка-События-Открытие файла.

И картинка.


kompilainenn

2 Hasim: а можно ли это оформить, как дополнение к Либреофис с настройкой цвета (а этот желтый вырезает глаза)?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

snowbarsik

можно я свои 5 копеек - что если изменять тон цвета фона на величину заданную пользователем. а при смене выделения возвращать тон в исходное значение ?
и да в виде дополнения к опенофису а то я 2 часа колбасился пока подключил

Hasim

Можно всё, только времени нет.
Это только примитивная демка, слепленная за пару минут из того, что нашел.
Всякие доработки приветствуются, теми, кто захочет доработать до кондиции.

kompilainenn

Цитата: Hasim от 24 июля 2014, 12:35Можно всё, только времени нет.
Это только примитивная демка, слепленная за пару минут из того, что нашел.
Всякие доработки приветствуются, теми, кто захочет доработать до кондиции.
будем надеяться, что желающие найдутся
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут