• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Visual Basic for Applications



    Podstrony: 1 [2] [3]
    Przeczytaj także...
    Microsoft Excel (pełna nazwa Microsoft Office Excel) - arkusz kalkulacyjny produkowany przez firmę Microsoft dla systemów Windows i MacOS. Pierwsza wersja programu przeznaczona dla Windows trafiła na rynek w roku 1987 i stała się przebojem. Postępujący sukces rynkowy programu sprawił, że w roku 1993 programy pakietu Microsoft Office zostały przeprojektowane tak, by przypominać wyglądem arkusz Excel. Od wersji 5 wydanej w 1993 program zawiera wbudowany język Visual Basic. Od wersji 4.0 dostępny w wersji polskiej.Microsoft Access - system obsługi relacyjnych baz danych, wchodzący w skład pakietu biurowego Microsoft Office dla środowiska Windows. Od wersji 2.0 dostępny w wersji polskiej.

    Visual Basic for Applications (VBA) – język programowania oparty na Visual Basicu (VB) zaimplementowany w aplikacjach pakietu Microsoft Office oraz kilku innych, jak na przykład AutoCAD i WordPerfect. Ta uproszczona wersja Visual Basica służy przede wszystkim do automatyzacji pracy z dokumentami, na przykład poprzez makropolecenia.

    Microsoft SQL Server (MS SQL) to system zarządzania bazą danych, wspierany i rozpowszechniany przez korporację Microsoft. Jest to główny produkt bazodanowy tej firmy, który charakteryzuje się tym, iż jako język zapytań używany jest przede wszystkim Transact-SQL, który stanowi rozwinięcie standardu ANSI/ISO.Microsoft Office (w skrócie MSO od Microsoft Office) – pakiet aplikacji biurowych wyprodukowany przez firmę Microsoft. Wprowadzony na rynek 1 sierpnia 1989.

    Podstawową różnicą między VBA a VB jest to, że VBA nie pozwala na tworzenie samodzielnych skompilowanych aplikacji typu EXE. Kod programu napisanego w VBA zawsze zawarty jest w dokumencie utworzonym przy pomocy programu obsługującego VBA - na przykład w pliku *.DOC edytora MS Word lub pliku *.XLS arkusza MS Excel. Program taki wymaga zatem środowiska uruchomieniowego, którym jest zainstalowana na komputerze aplikacja obsługująca dany dokument.

    Aplikacja, program użytkowy - konkretny, ze względu na oferowaną użytkownikom funkcjonalność, element oprogramowania użytkowego.Visual Basic to język programowania wysokiego poziomu i narzędzie programowania firmy Microsoft. Składnia jest oparta na języku BASIC, ale unowocześniona. Zawiera kilkaset instrukcji, funkcji i słów kluczowych. Nie jest językiem w pełni obiektowym, gdyż nie udostępnia np. możliwości dziedziczenia, czy polimorfizmu. Wykorzystuje technologię ActiveX.

    Wyjątkiem symulującym samodzielnie działające aplikacje są pliki utworzone w programie Microsoft Access, które - przy zakupie rozszerzenia Microsoft Office Developer lub innego, pozwalają na uruchamianie plików Accessa na dowolnej liczbie komputerów w tzw. Microsoft Access Runtime, bez konieczności wyposażania każdego pojedynczego komputera w pełny pakiet Microsoft Office.

    Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.Kod zarządzany – odmiana kodu bajtowego działającego pod kontrolą środowiska uruchomieniowego Microsoft .NET Common Language Runtime. W przeciwieństwie do klasycznego kodu bajtowego kod zarządzany jest kompilowany do kodu maszynowego bezpośrednio przed pierwszym uruchomieniem, jest więc do tego czasu przenośny i dostosowany do każdego procesora i systemu operacyjnego, o ile jest na nim zainstalowane środowisko uruchomieniowe, dzięki czemu łączy w sobie zalety zarówno kodu bajtowego, jak i kodu maszynowego.

    Od wersji 2000 pakiet Microsoft Office został wyposażony w oddzielny Edytor Visual Basic, dobrze znany programistom Visual Basic 6.0, co znacznie ułatwia pracę z kodem. W wersji 2000 dodano także możliwość współpracy programu Microsoft Access z bazą danych Microsoft SQL Server w architekturze klient-serwer.

    Przykłady programów[ | edytuj kod]

    Przed rozpoczęciem pisania programu w Edytorze VBA (uruchamianym poprzez wciśnięcie ALT+F11), należy dodać dodatek Solver jako odwołanie do VBA (jeżeli będziemy z niego korzystali). W tym celu należy wybrać w Edytorze Tools → References i zaznaczyć Solvera. Jeżeli go tam nie ma, to należy go odnaleźć w katalogu zawierającym Office poprzez guzik Browse.

    Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.

    Pisanie makra rozpoczynamy klikając prawym przyciskiem w dowolnym miejscu w oknie VBAProject (zwykle na górze po lewej stronie) i z menu wybierając Insert → Module. Jest to o tyle ważne, że makra napisane nie w "Modules" tylko "Microsoft Excel Objects" nie będą działały. Po wstawieniu nowego modułu, po prawej stronie pojawia się puste pole edycji, w którym możemy zacząć pisać swój program. Poniżej znajduje się kilka przykładów, które powinny pomóc zrozumieć składnię VBA. Poniższe przykłady można skopiować i bezpośrednio wstawić do modułu. Makro uruchamia się poprzez kliknięcie na zielony znak Run (lub klawisz F5).

    Klient-serwer ((ang.) client/server, client-server model) – architektura systemu komputerowego, w szczególności oprogramowania, umożliwiająca podział zadań (ról). Polega to na ustaleniu, że serwer zapewnia usługi dla klientów, zgłaszających do serwera żądania obsługi ((ang.) service request).Microsoft Word – procesor tekstu firmy Microsoft. Pierwotnie stworzony przez Richarda Brodie dla komputerów PC z systemem DOS w roku 1983. Kolejne wersje powstawały dla Macintosha (1984), SCO UNIX i Windows (1989). Pierwotnie samodzielny program, stał się później częścią pakietu biurowego Microsoft Office. Od wersji 2.0 dla Windows dostępny w wersji polskiej.

    Przykładowy program napisany w VBA:

        Sub proba()
        Dim i As Integer                'deklaracja zmiennej - nie jest wymagana w VBA
            For i = 1 To 10             'uruchomienie petli - 10 powtórzeń
                Cells(i, 1) = i ^ 2     'wypelnienie komórki wartością po prawej stronie znaku równa się
            Next i                      'zwiększenie i o jeden
        End Sub                         'zakończenie makra
    

    Ten prosty program wstawia do komórek z zakresu "A1:A10" kwadraty kolejnych liczb naturalnych (od 1 do 10)

    Biblioteka uruchomieniowa (ang.) runtime library - zestaw funkcji wyłączonych w czasie kompilacji kodu programu do biblioteki programistycznej, łączonych w czasie kompilacji kodu programu do pliku uruchomieniowego (np. .exe) i wykorzystywanych w trakcie działania (ang. runtime) danego programu komputerowego. Biblioteki stosuje się w celu standaryzacji, funkcjonalnej powtarzalności i efektywności działania systemu. Można kompilować kody programów bez linkowania do bibliotek uruchomieniowych, lecz wtedy tak skompilowane programy zajmowałyby znacznie więcej pamięci.Automatyzacja to znaczne ograniczenie lub zastąpienie (proces zastępowania) ludzkiej pracy fizycznej i umysłowej przez pracę maszyn działających na zasadzie samoregulacji i wykonujących określone czynności bez udziału człowieka (czyli samoczynnych). Również zastosowanie maszyn do pracy niemożliwej do wykonania w inny sposób.

    Przy pomocy VBA można także deklarować funkcje użytkownika. Poniższy program wprowadzi funkcję, która jako argument przyjmuje liczbę naturalną (n), a zwraca sumę ciągu arytmetycznego, gdzie pierwszy wyraz to 1, ostatni to n, a różnica ciągu to 1.

        Function aryt(n As Integer) As Integer
        Dim i, wartosc As Integer       'deklaracja zmiennych
            wartosc = 0                 'przypisanie wartości zero zmiennej wartosc
            For i = 1 To n              'uruchomienie pętli
                wartosc = wartosc + i   'zwiększenie zmiennej wartosc o i
            Next i                      'zwiększenie i o jeden
        aryt = wartosc                  'przypisanie zmiennej wyjściowej wartości zawartej w zmiennej wartość
        End Function
    

    Poniżej znajduje się bardziej skomplikowany program, którego celem jest pokazanie jak:

    AutoCAD – program tworzony i rozpowszechniany przez firmę Autodesk, wykorzystywany do dwuwymiarowego (2D) i trójwymiarowego (3D) komputerowego wspomagania projektowania. Specjalizowane wersje AutoCADa (np. AutoCAD Mechanical) umożliwiają również wykonywanie grafiki inżynierskiej 2,5D, metodą FBM.WordPerfect - procesor tekstu powstały w 1982 roku, w firmie WordPerfect Corporation, którego szczyt popularności przypada na lata 80. i początek lat 90. XX wieku, w okresie panowania systemu operacyjnego DOS. Później edytor ten został stopniowo wyparty z rynku przez Microsoft Word. WordPerfect przez długi czas był najpopularniejszym narzędziem do przetwarzania tekstu, detronizując inny znany standard z tamtej epoki - edytor WordStar.
  • wpisywać formuły (a nie wartości) do arkusza przy pomocy VBA
  • dokonywać operacji na kolumnach (np. zmiana szerokości)
  • uruchomić Tabelę Danych z poziomu VBA
  • wstawić wykres
  • uruchomić Solvera z poziomu VBA
  • jakie słabości ma Solver
  • Pierwsza część programu tworzy funkcję celu (sinusoida z trendem wzrostowym) oraz warunek ograniczający w postaci ujemnie nachylonej prostej (dopuszczalne rozwiązania znajdą się pod prostą). Następnie będę chciał przedstawić na wykresie funkcję celu i warunek ograniczający. W tym celu zbuduję Tabelę Danych i na jej podstawie narysuję wykres. Na koniec rozwiążę zadanie maksymalizacji funkcji celu przy zadanym warunku ograniczającym. Okaże się, że Solver znajduje maksimum w punkcie x=2,094 (f=1,91). Z wykresu wynika jednak, że jest to maksimum lokalne. Dlatego żeby znaleźć maksimum globalne trzeba rozpocząć poszukiwanie od np. x=5. Wtedy okaże się, że maksimum funkcji jest w x=7,54 (f=4,72). VBA może być więc przydatne w poszukiwaniu maksimów globalnych, ponieważ można wprowadzić np. pętlę, która będzie rozwiązywała zadanie optymalizacji wiele razy, startując z różnych punktów.

    Makro (lub makropolecenie) – zestaw rozkazów realizujący algorytm komputerowy przeznaczony do wykonywania przez określoną aplikację (edytor, arkusz kalkulacyjny, program graficzny) zwykle w celu automatyzacji pewnych czynności lub dokonania zmian w dokumentach bez interakcji z użytkownikiem. Makra pisane są zwykle w skryptowych językach programowania wykonywanych przez interpreter wbudowany w aplikacje, w których są uruchamiane.
      Sub skomplikowany_program()
      ''''stworzenie funkcji celu i wzoru na prostą ograniczającą'''
        Range("b1") = "cel"
        Range("b2").Formula = "=sin(" & Cells(2, 3).Address & ")+ 1/2*" & Cells(2, 3).Address
        Range("c1") = "x="
        Range("a4") = "prosta"
        Range("b4").Formula = "=-0.7*" & Cells(2, 3).Address & "+10"
      ''''stworzenie formuły, która będzie wykorzystywana przez Solvera jak warunek ograniczający'''
        Range("a6") = "warunek"
        Range("b5").Formula = "=" & Range("b2").Address & "-" & Range("b4").Address
        Range("c5") = "<"
        Range("d5") = 0
      ''''stworzenie "pierwszej" kolumny Tabeli Danych (a więc x=0, x=0.2, x=0.4 ... x=10)'''
        Cells(10, 1) = 0
        For i = 1 To 50
            Cells(i + 10, 1) = Cells(i + 9, 1) + 0.2
        Next i
      ''''zmiana szerokości kolumny'''
        Columns(2).ColumnWidth = 12
      ''''dodanie tekstu i formuły w nagłówku "drugiej" kolumny Tabeli Danych'''
        Range("b8") = "funkcja celu"
        Range("b9").Formula = "=" & Range("b2").Address
      ''''dodanie tekstu i formuły w nagłówku "trzeciej" kolumny Tabeli Danych'''
        Range("c8") = "prosta"
        Range("c9").Formula = "=" & Range("b4").Address
      ''''stworzenie Tabeli Danych na podstawie 3 kolumn'''
        Range(Cells(9, 1), Cells(60, 3)).Table columninput:=Range("c2")
      ''''stworzenie wykresu na podstawie Tabeli Danych'''
          Charts.Add
            ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
            ActiveChart.SetSourceData Source:=Sheets("Arkusz1").Range("A10:C60"), PlotBy _
               :=xlColumns
               ActiveChart.Location Where:=xlLocationAsObject, Name:="Arkusz1"
            ActiveChart.SeriesCollection(2).Select
      ''''wprowadzenie zadania optymalizacji do Solvera - maksymalizacja B2 poprzez zmianę C2'''
        solverreset
        solverok setcell:=Range("b2"), maxminval:=1, bychange:=Range("c2")
      ''''dodanie warunku ograniczającego - B5 to lewa strona, 1 to znak ≤, D5 to prawa strona'''
        solveradd cellref:=Range("b5"), relation:=1, formulatext:=Range("d5")
        solversolve userfinish:=True
      End Sub
    


    Podstrony: 1 [2] [3]




    Reklama

    Czas generowania strony: 0.027 sek.