|
|
Linia 1: |
Linia 1: |
− | <div style="text-align:right; font-size: 130%; font-style: italic; font-weight: bold;">02.08.2020</div> | + | <div style="text-align:right; font-size: 130%; font-style: italic; font-weight: bold;">11.07.2020</div> |
| | | |
| | | |
Linia 5: |
Linia 5: |
| | | |
| | | |
− | == Szybkość operowania danymi zapisanymi w komórkach i danymi zapisanymi w tablicy == | + | == Uwagi == |
| | | |
− | Prosty przykład pokaże nam różnicę między operowaniem na komórkach z zakresu komórek i na tablicy danych utworzonych z zakresu komórek. Zauważmy, że zmienna oRngData jest tablicą tablic, przykładowo mamy:<br/>
| + | [[Co zrobić, jeśli funkcja jest dostępna w arkuszu, ale nie jest dostępna w makrach?]] |
− | oRngData(0)(1) oznacza pierwszą tablicę w tablicy tablic oRngData i drugi element w tej pierwszej tablicy<br/>
| |
− | oRngData(0)(2) oznacza pierwszą tablicę w tablicy tablic oRngData i trzeci element w tej pierwszej tablicy itd.<br/>
| |
− | W przedstawionym niżej przykładzie operujemy na danych liczbowych – dalsze przykłady pokażą dlaczego i jakie ma to znaczenie.
| |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>ZakresyGetData1()
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oSht <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRngA <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRngB <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRngC <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oRngData() <span style='color:#707070;'>'tablica zawierająca dane</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> r <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Long</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> t <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Date</span>, d1 <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Date</span>, d2 <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Date</span>, d3 <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Date</span>
| |
− | oSht <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>0</span>) <span style='color:#707070;'>'uchwyt do pierwszego arkusza</span>
| |
− | oRngA <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"A1:A100000"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− | oRngB <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"B1:B100000"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− | oRngC <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"C1:C100000"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− |
| |
− | <span style='color:#707070;'>'wypełniamy 100000 komórek kolumny A liczbami losowymi z przedziału [0,1) i mierzymy czas tej operacji</span>
| |
− | t <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>() <span style='color:#707070;'>'można też wykorzystać funkcję Timer()</span>
| |
− | <b><span style='color:#1f1c1b;'>For </span></b>r <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>0</span> <b><span style='color:#1f1c1b;'>To</span></b> <span style='color:#ff0000;'>99999</span>
| |
− | oRngA.getCellByPosition(<span style='color:#ff0000;'>0</span>, r).Value <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Rnd</span>()
| |
− | <b><span style='color:#1f1c1b;'>Next </span></b>r
| |
− | d1 <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>() - t <u><span style='color:#707070;'>'ok. 90 sekund</span></u>
| |
− |
| |
− | <span style='color:#707070;'>'wypełniamy 100000 komórek kolumny B podwojonymi wartościami z kolumny A i mierzymy czas tej operacji</span>
| |
− | t <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>() <span style='color:#707070;'>'można też wykorzystać funkcję Timer()</span>
| |
− | <b><span style='color:#1f1c1b;'>For </span></b>r <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>0</span> <b><span style='color:#1f1c1b;'>To</span></b> <span style='color:#ff0000;'>99999</span>
| |
− | oRngB.getCellByPosition(<span style='color:#ff0000;'>0</span>, r).Value <span style='color:#000080;'>=</span> oRngA.getCellByPosition(<span style='color:#ff0000;'>0</span>, r).Value * <span style='color:#ff0000;'>2</span>
| |
− | <b><span style='color:#1f1c1b;'>Next </span></b>r
| |
− | d2 <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>() - t <u><span style='color:#707070;'>'ok. 100 sekund</span></u>
| |
− |
| |
− | <span style='color:#707070;'>'wypełniamy 100000 komórek kolumny C podwojonymi wartościami z kolumny A i mierzymy czas tej operacji</span>
| |
− | <span style='color:#707070;'>'tym razem wykorzystamy metodę '''getDataArray'''</span>
| |
− | t <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>()
| |
− | <span style='color:#707070;'>'pobieramy dane z zakresu komórek do tablicy</span>
| |
− | oRngData <span style='color:#000080;'>=</span> oRngA.getDataArray() <span style='color:#707070;'>'oRngData jest tablicą tablic</span>
| |
− | <b><span style='color:#1f1c1b;'>For </span></b>r <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>0</span> <b><span style='color:#1f1c1b;'>To</span></b> <span style='color:#ff0000;'>99999</span>
| |
− | oRngData(r)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>=</span> oRngData(r)(<span style='color:#ff0000;'>0</span>) * <span style='color:#ff0000;'>2</span>
| |
− | <b><span style='color:#1f1c1b;'>Next </span></b>r
| |
− | <span style='color:#707070;'>'wpisujemy dane z tablicy do zakresu komórek</span>
| |
− | oRngC.setDataArray(oRngData)
| |
− | d3 <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Now</span>() - t <u><span style='color:#707070;'>'ok. 2 sekund</span></u>
| |
− | MsgBox <span style='color:#ff0000;'>"Czas: d1="</span> <span style='color:#000080;'>&</span> d1 <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" d2="</span> <span style='color:#000080;'>&</span> d2 <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" d3="</span> <span style='color:#000080;'>&</span> d3
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| | | |
| | | |
| | | |
| + | == Libreoffice.org == |
| | | |
− | == Uwagi do metod: '''getDataArray''' i '''setDataArray''' ==
| + | [https://help.libreoffice.org/latest/pl/text/shared/05/new_help.html The LibreOffice Help] |
| | | |
− | Korzystając z metod '''getDataArray''' i '''setDataArray''' musimy pamiętać o tym, że możemy operować jedynie na danych liczbowych i tekstowych. Niedopuszczalne są wartości logiczne i wartości typu data.
| + | [https://help.libreoffice.org/6.4/pl/text/sbasic/shared/01020300.html Korzystanie z procedur i funkcji]<br/> |
| + | [https://help.libreoffice.org/latest/pl/text/sbasic/shared/01020300.html Korzystanie z procedur i funkcji] |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>ZakresyGetData2()
| + | [https://help.libreoffice.org/latest/pl/text/sbasic/shared/03080601.html Alfabetyczny spis funkcji, instrukcji i operatorów] |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oSht <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRng <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oRngData() <span style='color:#707070;'>'tablica zawierająca dane</span>
| |
− | oSht <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>0</span>) <span style='color:#707070;'>'uchwyt do pierwszego arkusza</span>
| |
− | oRng <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"A1:A5"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− | oRngData <span style='color:#000080;'>=</span> oRng.getDataArray() <span style='color:#707070;'>'pobieramy dane z zakresu komórek do tablicy tablic</span>
| |
− |
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>3.14</span>
| |
− | oRngData(<span style='color:#ff0000;'>1</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>128</span>
| |
− | oRngData(<span style='color:#ff0000;'>2</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>"abcd"</span>
| |
− | <span style='color:#707070;'>'oRngData(3)(0) <span style='color:#000080;'>=</span> IsNumeric("abcd") 'spowoduje błąd metody '''setDataArray'''</span>
| |
− | <span style='color:#707070;'>'oRngData(4)(0) <span style='color:#000080;'>=</span> DateSerial(2000, 12, 31) 'spowoduje błąd metody '''setDataArray'''</span>
| |
− |
| |
− | oRng.setDataArray(oRngData) <span style='color:#707070;'>'wpisujemy dane z tablicy do zakresu komórek</span>
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| + | [https://help.libreoffice.org/latest/pl/text/sbasic/shared/03010000.html Funkcje, twierdzenia i operatory] |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03030000.html Funkcje daty i czasu] |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03060000.html Operatory logiczne] |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03070000.html Operatory matematyczne] |
| | | |
− | == Uwagi do metod: '''getData''' i '''setData''' ==
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03080000.html Funkcje numeryczne] |
| | | |
− | Korzystając z metod '''getData''' i '''setData''' musimy pamiętać o tym, że możemy operować jedynie na danych liczbowych. W tym przypadku wpisanie do tablicy wartości logicznych i typu data spowoduje zapisanie odpowiadających tym wartościom liczb, a przypisany tekst zostanie pominięty i zostanie wpisana liczba zero.
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03100000.html Zmienne] |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>ZakresyGetData3()
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03110100.html Operatory porównania] |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oSht <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRng <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oRngData() <span style='color:#707070;'>'tablica zawierająca dane</span>
| |
− | oSht <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>0</span>) <span style='color:#707070;'>'uchwyt do pierwszego arkusza</span>
| |
− | oRng <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"A1:E1"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− | oRngData <span style='color:#000080;'>=</span> oRng.getData() <span style='color:#707070;'>'pobieramy dane z zakresu komórek do tablicy tablic</span>
| |
− |
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>3.14</span>
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>1</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>128</span>
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>2</span>) <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>"abcd"</span>
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>3</span>) <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>IsNumeric</span>(<span style='color:#ff0000;'>"128"</span>)
| |
− | oRngData(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>4</span>) <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>DateSerial</span>(<span style='color:#ff0000;'>2000</span>, <span style='color:#ff0000;'>12</span>, <span style='color:#ff0000;'>31</span>)
| |
− |
| |
− | oRng.setData(oRngData) <span style='color:#707070;'>'wpisujemy dane z tablicy do zakresu komórek</span>
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/sbasic/shared/03120000.html Łańcuchy] |
| | | |
| + | [https://help.libreoffice.org/latest/pl/text/sbasic/shared/01030300.html Debugowanie programu Basic] |
| | | |
| + | [https://help.libreoffice.org/latest/pl/text/scalc/01/04060100.html Funkcje (dostępne w arkuszu) według kategorii] |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/scalc/01/04060102.html Funkcje daty i godziny] |
| | | |
− | == Przykłady ==
| + | ::[https://help.libreoffice.org/latest/pl/text/scalc/01/04060106.html Funkcje matematyczne] |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>ZakresyGetData4()
| + | ::[https://help.libreoffice.org/latest/pl/text/scalc/01/04060108.html Funkcje statystyczne] |
− | <span style='color:#707070;'>'pobieranie danych z zakresu komórek do tablicy i wpisywanie danych z tablicy do zakresu komórek</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oSht <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRng <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> c <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Long</span>, r <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Long</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oRngData() <span style='color:#707070;'>'tablica zawierająca dane</span>
| |
− | oSht <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>0</span>) <span style='color:#707070;'>'uchwyt do pierwszego arkusza</span>
| |
− | oRng <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"B2:D9"</span>) <span style='color:#707070;'>'uchwyt do zakresu komórek</span>
| |
− | oRngData <span style='color:#000080;'>=</span> oRng.getDataArray() <span style='color:#707070;'>'pobieramy dane z zakresu komórek do tablicy</span>
| |
− |
| |
− | <b><span style='color:#1f1c1b;'>For </span></b>r <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>0</span> <b><span style='color:#1f1c1b;'>To</span></b> <span style='color:#0095ff;'>UBound</span>( oRngData() ) <span style='color:#707070;'>'r przebiega wiersze zakresu komórek "B2:D9"</span>
| |
− | <b><span style='color:#1f1c1b;'>For </span></b>c <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>0</span> <b><span style='color:#1f1c1b;'>To</span></b> <span style='color:#0095ff;'>UBound</span>( oRngData(<span style='color:#ff0000;'>0</span>) ) <span style='color:#707070;'>'c przebiega kolumny zakresu komórek "B2:D9"</span>
| |
− | oRngData(r)(c) <span style='color:#000080;'>=</span> c <span style='color:#000080;'>&</span> r
| |
− | <b><span style='color:#1f1c1b;'>Next </span></b>c
| |
− | <b><span style='color:#1f1c1b;'>Next </span></b>r
| |
− |
| |
− | oRng.setDataArray(oRngData) <span style='color:#707070;'>'wpisujemy dane z tablicy do zakresu komórek</span>
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| + | ::[https://help.libreoffice.org/latest/pl/text/scalc/01/04060110.html Funkcje tekstowe] |
| | | |
− | Omówione wyżej metody możemy wykorzystać do kopiowania danych:
| |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>ZakresyGetData5()
| |
− | <span style='color:#707070;'>'kopiowanie danych (tylko liczby i tekst)</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oRng1 <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRng2 <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <span style='color:#707070;'>'uchwyt do zakresu komórek "B2:D9" w pierwszym arkuszu</span>
| |
− | oRng1 <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>0</span>).getCellRangeByName(<span style='color:#ff0000;'>"B2:D9"</span>)
| |
− | <span style='color:#707070;'>'uchwyt do zakresu komórek "B2:D9" w drugim arkuszu</span>
| |
− | oRng2 <span style='color:#000080;'>=</span> ThisComponent.getSheets().getByIndex(<span style='color:#ff0000;'>1</span>).getCellRangeByName(<span style='color:#ff0000;'>"B2:D9"</span>)
| |
− | <span style='color:#707070;'>'kopiowanie</span>
| |
− | oRng2.setDataArray( oRng1.getDataArray() )
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| | | |
| | | |
| + | == Poradniki (PDF) == |
| | | |
| + | [https://documentation.libreoffice.org/assets/Uploads/Documentation/en/MACROS/RefCards/LibOBasic-1-IDE-Flat-Letter-EN-v102.pdf LibreOffice Basic IDE (Integrated Development Environment)] |
| | | |
− | == Porównanie metod '''getData()''' i '''getDataArray()''' ==
| + | [https://documentation.libreoffice.org/assets/Uploads/Documentation/en/MACROS/RefCards/LibOBasic-2-Overview-Flat-Letter-EN-v110.pdf LibreOffice Basic Overview] |
| | | |
− | Należy zauważyć, że:
| + | [https://documentation.libreoffice.org/assets/Uploads/Documentation/en/MACROS/RefCards/LibOBasic-3-Calc-Flat-A4-EN-v111.pdf LibreOffice Basic Calc] |
− | :*getDataArray() tworzy tablicę zmiennych typu Variant, czyli przekaże również dane tekstowe
| |
− | :*getData() tworzy tablicę zmiennych typu Double, czyli przekaże tylko dane liczbowe
| |
| | | |
− | <span style="color: green"><b><span style='color:#1f1c1b;'>Sub </span></b>Zakresy6()
| + | [https://documentation.libreoffice.org/assets/Uploads/Documentation/en/MACROS/RefCards/LibOBasic-5-ExecLib-Flat-A4-EN-v101.pdf LibreOffice Basic Runtime Library] |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> oSht <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>, oRng <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Object</span>
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> A(), B(), C()
| |
− | <b><span style='color:#1f1c1b;'>Dim</span></b> k <b><span style='color:#1f1c1b;'>as</span></b> <span style='color:#000080;'>Long</span>
| |
− | oSht <span style='color:#000080;'>=</span> ThisComponent.getSheets.getByIndex(<span style='color:#ff0000;'>0</span>) <span style='color:#707070;'>'uchwyt do pierwszego arkusza</span>
| |
− | ThisComponent.CurrentController.setActiveSheet(oSht) <span style='color:#707070;'>'aktywacja pierwszego arkusza</span>
| |
− | oSht.getColumns().insertByIndex(<span style='color:#ff0000;'>0</span>, <span style='color:#ff0000;'>1</span>) <span style='color:#707070;'>'dodajemy jedną kolumnę na pozycję pierwszą</span>
| |
− | oSht.getCellRangebyName(<span style='color:#ff0000;'>"A1"</span>).Value <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>1</span>
| |
− | oSht.getCellRangebyName(<span style='color:#ff0000;'>"A2"</span>).Value <span style='color:#000080;'>=</span> True <span style='color:#707070;'>'-1</span>
| |
− | oSht.getCellRangebyName(<span style='color:#ff0000;'>"A3"</span>).Value <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>DateSerial</span>(<span style='color:#ff0000;'>2000</span>, <span style='color:#ff0000;'>1</span>, <span style='color:#ff0000;'>1</span>) <span style='color:#707070;'>'36526</span>
| |
− | oSht.getCellRangebyName(<span style='color:#ff0000;'>"A4"</span>).<span style='color:#000080;'>String</span> <span style='color:#000080;'>=</span> <span style='color:#ff0000;'>"abcd"</span> <span style='color:#707070;'>'0</span>
| |
− | oRng <span style='color:#000080;'>=</span> oSht.getCellRangeByName(<span style='color:#ff0000;'>"A1:A4"</span>)
| |
− | A <span style='color:#000080;'>=</span> oRng.getDataArray()
| |
− | B <span style='color:#000080;'>=</span> oRng.getData()
| |
− | C <span style='color:#000080;'>=</span> <span style='color:#0095ff;'>Array</span>( <span style='color:#0095ff;'>Array</span>( <span style='color:#ff0000;'>1</span> ), <span style='color:#0095ff;'>Array</span>( True ), <span style='color:#0095ff;'>Array</span>( <span style='color:#0095ff;'>DateSerial</span>(<span style='color:#ff0000;'>2000</span>, <span style='color:#ff0000;'>1</span>, <span style='color:#ff0000;'>1</span>) ), <span style='color:#0095ff;'>Array</span>( <span style='color:#ff0000;'>"abcd"</span> ) ) <span style='color:#707070;'>'tworzymy tablicę tablic</span>
| |
− | MsgBox <span style='color:#ff0000;'>"A <span style='color:#000080;'>=</span> [ "</span> <span style='color:#000080;'>&</span> A(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> A(<span style='color:#ff0000;'>1</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> A(<span style='color:#ff0000;'>2</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> A(<span style='color:#ff0000;'>3</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" ]"</span> <span style='color:#000080;'>&</span> <span style='color:#0095ff;'>Chr</span>(<span style='color:#ff0000;'>10</span>) <span style='color:#000080;'>&</span> _
| |
− | <span style='color:#ff0000;'>"B <span style='color:#000080;'>=</span> [ "</span> <span style='color:#000080;'>&</span> B(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> B(<span style='color:#ff0000;'>1</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> B(<span style='color:#ff0000;'>2</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> B(<span style='color:#ff0000;'>3</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" ]"</span> <span style='color:#000080;'>&</span> <span style='color:#0095ff;'>Chr</span>(<span style='color:#ff0000;'>10</span>) <span style='color:#000080;'>&</span> _
| |
− | <span style='color:#ff0000;'>"C <span style='color:#000080;'>=</span> [ "</span> <span style='color:#000080;'>&</span> C(<span style='color:#ff0000;'>0</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> C(<span style='color:#ff0000;'>1</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> C(<span style='color:#ff0000;'>2</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" | "</span> <span style='color:#000080;'>&</span> C(<span style='color:#ff0000;'>3</span>)(<span style='color:#ff0000;'>0</span>) <span style='color:#000080;'>&</span> <span style='color:#ff0000;'>" ]"</span>
| |
− | <b><span style='color:#1f1c1b;'>End Sub</span></b></span>
| |
| | | |
| + | [https://documentation.libreoffice.org/assets/Uploads/Documentation/en/MACROS/RefCards/LibOBasic-6-Dialogs-Flat-A4-EN-v103.pdf LibreOffice Basic Dialogs] |
| | | |
| | | |
| | | |
| | | |
− | == Polecane strony internetowe ==
| |
| | | |
− | [https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/XCellRangeData.html Apache OpenOffice – interface XCellRangeData] | + | == Wiki.openoffice.org == |
| + | |
| + | [https://wiki.openoffice.org/wiki/Documentation The Apache OpenOffice Documentation Project] |
| + | |
| + | [https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Runtime_Library The Runtime Library of Apache OpenOffice Basic] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Conversion_Functions_(Runtime_Library) Conversion Functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Strings_(Runtime_Library) Strings] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Date_and_Time_(Runtime_Library) Date and Time] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library) Files and Directories] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Message_and_Input_Boxes_(Runtime_Library) Message and Input Boxes] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Other_Functions_(Runtime_Library) Other Functions] |
| + | |
| + | [https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Functions_listed_alphabetically Calc: Functions listed alphabetically] |
| + | |
| + | [https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Functions_listed_by_category Calc: Functions listed by category] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Array_functions Array functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Complex_Number_functions Complex Number functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Date_%26_Time_functions Date & Time functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Information_functions Information functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Logical_functions Logical functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Mathematical_functions Mathematical functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Number_Conversion_functions Number Conversion functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Spreadsheet_functions Spreadsheet functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Statistical_functions Statistical functions] |
| + | |
| + | ::[https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_Text_functions Text functions] |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | == Openoffice.org == |
| + | |
| + | [https://www.openoffice.org/api/docs/common/ref/index-files/index-1.html Global Index] |
| | | |
| | | |