Narzędzia użytkownika

Narzędzia witryny


fedora:aplikacje:libreoffice:basic

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
fedora:aplikacje:libreoffice:basic [2023/11/07 11:20] – [Usunięcie wszystkich wierszy z arkusza poza wierszem nagłówka] sindapfedora:aplikacje:libreoffice:basic [2025/01/17 12:08] (aktualna) – [Odkrycie wszystkich ukrytych kolumn] sindap
Linia 12: Linia 12:
  
 ==== Przykładowe nazwy zmiennych ==== ==== Przykładowe nazwy zmiennych ====
 +
 +=== Zmienna dokumentu ===
  
 <code> <code>
-Dim oDoc As Object ' Ten dokument jako obiekt +Dim oDoc As Object ' Utwórz obiekt arkuszy 
-Dim oSheet As Object ' Ten arkusz jako obiekt+oDoc = ThisComponent.Sheets ' Ustal arkusze dla którego chcesz użyć makro 
 +</code> 
 + 
 +=== Zmienna arkusza === 
 +<code> 
 +Dim oSheet As Object ' Utwórz obiekt arkusza 
 +oSheet = ThisComponent.Sheets.getByName("NazwaArkusza") ' Przypisanie arkusza do obiektu 
 +</code> 
 +W powyższym przykładzie można by zastosować składnię: 
 +<code> 
 +oSheet = oDoc.getByName("NazwaArkusza"
 +</code> 
 +Jakiego sposobu użyjemy zależy od nas. Z jednej strony powyższy wpis może zmniejszyć wielkość kodu ale z drugiej strony mimo tego, że kod będzie mniejszy to może utrudnić jego zrozumienie. 
 +Trzeba podejść elastycznie co w danym przypadku będzie wygodniejsze, lepsze, zasadne itd.  
 + 
 +=== Inne === 
 +<code>
 Dim oTextCSV As Object ' Zmienna dokumentu CSV jako obiekt Dim oTextCSV As Object ' Zmienna dokumentu CSV jako obiekt
 Dim sFile As String ' Zmienna ścieżki do pliku jako ciąg znaków Dim sFile As String ' Zmienna ścieżki do pliku jako ciąg znaków
Linia 30: Linia 48:
 </code> </code>
  
-Jeżeli wpiszemy ''oDoc = ThisComponent'' otrzymamy komunikat, że ''Nie znaleziono właściwości lub metody dla insertNewByName''. Dlatego dopisujemy parametr ''Sheets''. Dla ''insertNewByName'' pominięcie parametru ''(, 1)'' też zakończy się błędem dlatego trzeba określić, którym arkuszem będzie nowy arkusz. Jeżeli wprowadzi się wartość ''(, 0)'' nowy arkusz będzie jako pierwszy.+Jeżeli wpiszemy ''oDoc = ThisComponent'' otrzymamy komunikat, że ''Nie znaleziono właściwości lub metody dla insertNewByName''. Dlatego dopisujemy parametr ''Sheets''. Dla ''insertNewByName'' pominięcie parametru ''(, 1)'' też zakończy się błędem dlatego trzeba określić, którym arkuszem będzie nowy arkusz. Jeżeli wprowadzi się wartość ''(, 0)'' nowy arkusz będzie jako pierwszy.\\ 
 + 
  
 ==== Tworzenie nowego arkusza o ile arkusz o podanej nazwie nie istnieje ==== ==== Tworzenie nowego arkusza o ile arkusz o podanej nazwie nie istnieje ====
Linia 66: Linia 86:
  
 <code> <code>
-Dim oDoc As Object ' Ten dokument jako obiekt     +Dim oDoc As Object 
-' Wyświetlenie nazw arkuszy z dokumentu +oDoc = ThisComponent.Sheets     
-For Each sheet In oDoc +For Each Sheet In oDoc 
-   MsgBox sheet.Name+   MsgBox Sheet.Name
 Next Next
 </code> </code>
Linia 76: Linia 96:
  
 <code> <code>
-Dim oDoc As Object ' Ten dokument jako obiekt +Dim oDoc As Object 
-' Wyświetlenie nazw arkuszy z dokumentu+oDoc = ThisComponent.Sheets
 MsgBox Join(oDoc.ElementNames, Chr(13)) MsgBox Join(oDoc.ElementNames, Chr(13))
 </code> </code>
Linia 169: Linia 189:
 </code> </code>
  
 +==== Ukrycie kolumn B, D i G ====
 +<code>
 +Dim oDoc As Object
 +Dim oSheet As Object
 +Dim oColumns As Object
 +' Pobranie dokumentu i arkusza o nazwie "ImportDanych"
 +oDoc = ThisComponent.Sheets
 +oSheet = oDoc.getByName("ImportDanych")
 +oColumns = oSheet.getColumns()
 +' Ukrycie kolumn B (1), D (3) i G (6)
 +oColumns.getByIndex(1).IsVisible = False ' Ukrycie kolumny B
 +oColumns.getByIndex(3).IsVisible = False ' Ukrycie kolumny D
 +oColumns.getByIndex(6).IsVisible = False ' Ukrycie kolumny G
 +</code>
 +
 +==== Odkrycie wszystkich ukrytych kolumn ====
 +<code>
 +Dim oDoc As Object
 +Dim oSheet As Object
 +Dim oColumns As Object
 +Dim i As Integer
 +' Pobranie dokumentu i arkusza o nazwie "ImportDanych"
 +oDoc = ThisComponent.Sheets
 +oSheet = oDoc.getByName("ImportDanych")
 +oColumns = oSheet.getColumns()
 +' Odkrycie wszystkich kolumn
 +For i = 0 To oColumns.getCount() - 1
 +    oColumns.getByIndex(i).IsVisible = True
 +Next i
 +</code>
 +
 +Generalnie chyba prościej zaznaczyć cały arkusz w lewym górnym rogu i odkryć kolumny z menu podręcznego myszki. 
 ==== Numer ostatniej niepustej kolumny w pierwszym wierszu ==== ==== Numer ostatniej niepustej kolumny w pierwszym wierszu ====
  
Linia 266: Linia 318:
 </code> </code>
  
 +==== Ukryj wiersze 2, 5 i 10 ====
 +<code>
 +Dim oDoc As Object
 +Dim oSheet As Object
 +Dim oRows As Object
 +' Pobranie dokumentu i arkusza o nazwie "ImportDanych"
 +oDoc = ThisComponent.Sheets
 +oSheet = oDoc.getByName("ImportDanych")
 +oRows = oSheet.getRows()
 +' Ukrycie wierszy 2 (1), 5 (4) i 10 (9) (indeksy zaczynają się od 0)
 +oRows.getByIndex(1).IsVisible = False ' Ukrycie wiersza 2
 +oRows.getByIndex(4).IsVisible = False ' Ukrycie wiersza 5
 +oRows.getByIndex(9).IsVisible = False ' Ukrycie wiersza 10
 +</code>
 +
 +==== Odkryj wszystkie wiersze ====
 +<code>
 +Dim oDoc As Object
 +Dim oSheet As Object
 +Dim oRows As Object
 +Dim i As Long ' Zmieniono na Long, aby obsłużyć duże zakresy
 +' Pobranie dokumentu i arkusza o nazwie "ImportDanych"
 +oDoc = ThisComponent.Sheets
 +oSheet = oDoc.getByName("ImportDanych")
 +oRows = oSheet.getRows()
 +' Odkrycie wszystkich wierszy
 +For i = 0 To oRows.getCount() - 1
 +    oRows.getByIndex(i).IsVisible = True
 +Next i
 +</code>
 +
 +Z uwagi na dużą ilość dostępnych wierszy lepiej odkrywać określone wiersze. Makro jako ciekawostka. Mało praktyczne. Może zjeść zasoby.
 ==== Numer ostatniego niepustego wiersza w kolumnie A ==== ==== Numer ostatniego niepustego wiersza w kolumnie A ====
  
Linia 353: Linia 437:
 Dim oSheet As Object Dim oSheet As Object
 Dim oCursor As Object Dim oCursor As Object
-Dim lastRow As Integer +Dim lastRow As Long
 ' Dotyczy dokumentu Calc ' Dotyczy dokumentu Calc
 oDoc = ThisComponent.Sheets oDoc = ThisComponent.Sheets
fedora/aplikacje/libreoffice/basic.1699352443.txt.gz · ostatnio zmienione: 2023/11/07 11:20 przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki