Generator liczb losowych z kolorowaniem tła komórek
Stronę tą wyświetlono już: 2481 razy
Czas najwyższy stworzyć pierwsze makro w OpenOffice Calc, które wygeneruje losowe liczby zmiennoprzecinkowe z zakresu od 0 do 1 i pokoloruje komórki, w których zostaną one zapisane. Makro i funkcje stworzone zostaną lokalnie (co to znaczy zostało omówione na stronie OpenOffice - własne funkcje).
W utworzonym lokalnym module należy zamieścić następujący kod:- Function SetColor(k as double, w as double)
- Dim document as object
- Dim dispatcher as object
- document = ThisComponent.CurrentController.Frame
- dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- Dim args2(0) as new com.sun.star.beans.PropertyValue
- args(0).Name = "BackgroundColor"
- args(0).Value = Int(255 * w / k) * 256 * 256 + Int(255 - 255 * w / k) * 256
- dispatcher.executeDispatch(document, ".uno:BackgroundColor","",0,args())
- End Function
- Sub Generator
- Dim document as object
- Dim dispatcher as object
- document = ThisComponent.CurrentController.Frame
- dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- Dim args(0) as new com.sun.star.beans.PropertyValue
- args(0).Name = "ToPoint"
- args(0).Value = "$B$2"
- dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args())
- Dim i as integer
- Dim j as integer
- For j = 1 To 10
- For i = 1 To 10
- Dim str as string
- Dim w as double
- w = rnd()
- str = w
- args(0).Name = "StringName"
- args(0).Value = str
- dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args())
- SetColor(1, w)
- dispatcher.ExecuteDispatch(document, ".uno:GoDown", "" , 0 ,Array())
- Next i
- For i = 1 To 10
- dispatcher.ExecuteDispatch(document, ".uno:GoUp", "", 0, Array())
- Next i
- dispatcher.ExecuteDispatch(document, ".uno:GoRight", "", 0, Array())
- Next j
- End Sub
a następnie zapisać dokument. Teraz w arkuszu kalkulacyjnym programu Calc należy wybrać z menu pozycję Widok->Paski narzędzi->Formanty. Na pasku narzędziowym Formanty jeżeli nie są aktywne ikonki formantów należy kliknąć ikonę Włącz/Wyłącz tryb projektu a następnie wybrać formant przycisku i narysować go w arkuszu kalkulacyjnym. Na przycisku kliknąć ppm i z menu podręcznego wybrać pozycję Formant. Pojawi się okno Właściwości: Przycisk w zakładce Ogólne zmienić należy pole Etykieta na tekst np. Generuj liczby losowe. W zakładce Wydarzenia dla pozycji Zatwierdź działanie kliknąć przycisk z trzema kropkami, by wyświetliło się okno dialogowe Przypisz działanie zaznaczyć pozycję Zatwierdź działanie i kliknąć przycisk Makro... Teraz przypisać należy makro Generator znajdując po lewej stronie moduł, z którego ono pochodzi a po prawej z listy wybierając makro o tejże nazwie. Kliknąć należy OK i zamknąć pozostałe okna. Teraz na pasku formantów przełączyć tryb projektowania i już można sprawdzić, czy działa.

P.S.
Na wszelki wypadek, co by nie było, że sknerą jestem w załączniku zamieszczam gotowy dokument z generatorem liczb losowych.
A może by tak jeszcze zrobić losowanie z sortowaniem? - a proszę bardzo, oto i ono:
- Sub generator2
- Redim liczby(99) as double
- Dim i as integer
- ' Wczytywanie maksymalnej wartości losowania'
- Dim maximum as double
- arkusz = thisComponent.currentController.getActiveSheet()
- maksimum = arkusz.getCellRangeByName("C16").Value
- If maksimum <= 0 Then ' Jeżeli maksimum jest mniejsze lub równe zero to'
- exit sub ' zakończ działanie makra'
- End If
- ' losowanie 100 liczb'
- For i = 0 To 99
- liczby(i) = rnd() * maksimum ' z zakresu od 0 do maksimum'
- Next i
- ' sortowanko liczb'
- Dim k as long
- Do
- k = 0
- For i = 0 To 98
- If (liczby(i) > liczby(i + 1)) Then
- Dim a as double
- a = liczby(i)
- liczby(i)= liczby(i + 1)
- liczby(i + 1) = a
- k = k + 1
- End If
- Next i
- Loop While(k > 0)
- ' koniec sortowanka liczb'
- ' Wpisywanie wylosowanych liczb w komórki arkusza'
- For i = 0 To 99
- arkusz.GetCellByPosition(1 + (i mod 10),1 + Int(i / 10)).Value = liczby(i)
- Next i
- ' Koniec wspisywania'
- ' Kolorowanie komórek według ich wartości'
- Dim j as integer
- Dim document as object
- Dim dispatcher as object
- document = ThisComponent.CurrentController.Frame
- dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- Dim args(0) as new com.sun.star.beans.PropertyValue
- args(0).Name = "ToPoint"
- args(0).Value = "$B$2"
- dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args())
- For j = 1 To 10
- For i = 1 To 10
- SetColor(maksimum, liczby(j - 1 + (i - 1) * 10))
- dispatcher.ExecuteDispatch(document, ".uno:GoDown", "" , 0 ,Array())
- Next i
- For i = 1 To 10
- dispatcher.ExecuteDispatch(document, ".uno:GoUp", "", 0, Array())
- Next i
- dispatcher.ExecuteDispatch(document, ".uno:GoRight", "", 0, Array())
- Next j
- 'Koniec kolorowania'
- End Sub

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń dla gimnazjum. Edycja: Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (wydanie II)
Autor:
Jolanta Pańczyk

Tytuł:
Informatyka Europejczyka. Podręcznik dla gimnazjum. Edycja: Windows XP, Linux Ubuntu, MS Office 2003, OpenOffice.org (wydanie III)
Autor:
Jolanta Pańczyk

Tytuł:
Informatyka Europejczyka. Podręcznik dla gimnazjum. Edycja: Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (wydanie III)
Autor:
Jolanta Pańczyk

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 4. Edycja: Windows 7, Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 5. Edycja: Windows 7, Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 6. Edycja: Windows 7, Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 4. Edycja: Windows XP, Linux Ubuntu, MS Office 2003, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 5. Edycja: Windows XP, Linux Ubuntu, MS Office 2003, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Zeszyt ćwiczeń do zajęć komputerowych dla szkoły podstawowej, kl. 6. Edycja: Windows XP, Linux Ubuntu, MS Office 2003, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka

Tytuł:
Informatyka Europejczyka. Podręcznik do zajęć komputerowych dla szkoły podstawowej, kl. 4. Edycja: Windows 7, Windows Vista, Linux Ubuntu, MS Office 2007, OpenOffice.org (Wydanie II)
Autor:
Danuta Kiałka, Katarzyna Kiałka