chemiczne funkcje do excela

Function masa_czasteczkowa(a As Integer, b As Integer, d As Integer) As Integer

Dim c As Byte

Dim H As Byte

Dim O As Byte


c = 12

O = 16

H = 1

a = InputBox("podaj liczbę węgli", "ilość węgli w cząsteczce") ' to mogło być, a nawet lepiej, żeby było dopiero w procedurze - nadanie wartości argumentom

b = InputBox("podaj liczbę wodorów", "ilość wodorów w cząsteczce") 'j.w.

d = InputBox("podaj liczbę tlenów", "ilość tlenów w cząsteczce") 'j.w.


masa_czasteczkowa = (a * c) + (b * H) + (d * O)



End Function


Sub próba()

Dim a As Integer

Dim b As Integer

Dim d As Integer


MsgBox "masa cząsteczki wynosi " & masa_czasteczkowa(a, b, d) & "g/mol", vbInformation, "wynik"


End Sub


Function nwd(a As Integer, b As Integer) As Variant 'źle działa - proszę sprawdzić jaki jest wynik tej funkcji

a = InputBox("podaj pierwszą liczbę")

b = InputBox("podaj drugą liczbę")


Do Until a <> b 'wykonuje się aż a <> b a ma się wykonywać aż a = b....

If a > b Then

a = a - b

Else

b = b - a

End If

Loop


nwd = a


End Function

Sub sprawdz_2() 'tu wyświetla "expected array" o co chodzi?:-(

Dim a As Integer

Dim b As Integer

'Dim nwd As Integer nazwy funkcji nie deklarujemy!!


MsgBox (nwd(a, b))

End Sub



Function nwd_popr(a As Integer, b As Integer) As Variant 'działa poprawnie, zamieniłam warunek na While...Wend

a = InputBox("podaj pierwszą liczbę")

b = InputBox("podaj drugą liczbę")


While a <> b 'pętla się wykonuje gdy a <>b

If a > b Then

a = a - b

Else

b = b - a

End If

Wend


nwd_popr = a ' działa


End Function

Sub sprawdz_2_popr() 'teraz jest OK

Dim a As Integer

Dim b As Integer


MsgBox (nwd_popr(a, b))

End Sub



Function suma(zakres As Variant) As Integer

Dim komórka As Variant


suma = 0

Set zakres = Application.InputBox("podaj zakres", "zakres", , , , , , 8)

For Each komórka In zakres

If komórka.Font.Name = "Times New Roman" Then suma = suma + 1

Next


End Function

Sub sprawdź_3()

Dim zakres As Variant

Dim komórka As Variant


MsgBox (suma(zakres))


End Sub


Function dzielnik(zakres As Variant) As Integer

Dim komórka As Variant


dzielnik = 0


Set zakres = Application.InputBox("podaj zakres", "zakres", , , , , , 8)


For Each komórka In zakres

If IsEmpty(komórka) = False And IsNumeric(komórka) = True Then If komórka.Value Mod 7 = 0 Then dzielnik = dzielnik + 1

Next


End Function


Sub sprawdź_4() ' wygląda OK

Dim komórka As Variant

Dim zakres As Variant



MsgBox (dzielnik(zakres))


End Sub


Function stezenie(ms As Integer, mr As Integer) As Integer


ms = InputBox("podaj masę substancji", "masa substancji")

mr = InputBox("podaj masę roztworu", "masa substancji")


stezenie = (ms / mr) * 100


End Function


Sub sprawdź_6() 'OK chociaż przypisanie wartości argumentom powinno znależć się w procedurze Sub

Dim stężenie As Integer

Dim ms As Integer

Dim mr As Integer


MsgBox "stężenie roztworu wynosi " & stezenie(ms, mr) & "%", vbInformation, "wynik"


End Sub


Function stezenie_inaczej(ms As Integer, mr As Integer) As Integer


'ms = InputBox("podaj masę substancji", "masa substancji")

'mr = InputBox("podaj masę roztworu", "masa substancji")


stezenie_inaczej = (ms / mr) * 100


End Function


Sub sprawdź_6_inaczej()

Dim stężenie As Integer

Dim ms As Integer

Dim mr As Integer

ms = InputBox("podaj masę substancji", "masa substancji") 'wprowadzenie wartości argumentów u Pani było w funkcji

mr = InputBox("podaj masę roztworu", "masa substancji")


MsgBox "stężenie roztworu wynosi " & stezenie_inaczej(ms, mr) & "%", vbInformation, "wynik"


End Sub

' Obliczenie n-tego elementu ciągu Fibonaciego (GRATIS :-))


'(pierwszy wyraz 1, drugi 1, następny sumą 2 poprzednich


Function Fibo(n As Byte) As Long

If n = 1 Then

Fibo = 1

ElseIf n = 2 Then

Fibo = 1

Else

Fibo = Fibo(n - 1) + Fibo(n - 2)

End If

End Function





Option Explicit


Sub wprowadź_dane(a As Single, b As Single, c As Single)

a = InputBox("Podaj a:")

b = InputBox("Podaj b:")

c = InputBox("Podaj c:")

End Sub


Function delta(a As Single, b As Single, c As Single) As Single

delta = b ^ 2 - 4 * a * c

End Function


Sub liniowe(a As Single, b As Single, x)

If a = 0 Then

If b = 0 Then

x = "Równanie tożsamościowe"

Else

x = "Równanie sprzeczne"

End If

Else

x = -b / a

End If

End Sub


Sub równanie_kwadratowe()

Dim a As Single, b As Single, c As Single, d As Single, x

Call wprowadź_dane(a, b, c)

If a = 0 Then

Call liniowe(b, c)

Else

d = delta(a, b, c)

If d < 0 Then

x = "nie ma rozwiązań"

ElseIf d = 0 Then

x = -b / 2 * a

Else

x = "są dwa rozwiązania:" & Chr(10) & Chr(13) & _

"x1 = " & (-b - Sqr(d)) / (2 * a) & Chr(10) & Chr(13) & _

"x2 = " & (-b + Sqr(d)) / (2 * a)

End If

End If

MsgBox (x)

End Sub


Sub sumowanko()

Dim n As Integer, i As Integer, sum As Integer, decyzja As String

decyzja = vbYes

Do Until decyzja = vbNo

sum = 0

n = InputBox("Podaj n:")

For i = 1 To n

sum = sum + i

Next

MsgBox ("sumowałeś: " & n & " liczby" & Chr(10) & Chr(13) & "wynik sumowania: " & sum)

decyzja = MsgBox("czy chcesz liczyć jeszcze raz? ", vbYesNo + vbInformation, "decyzja")

Loop

End Sub


Sub sumowanie_w_obszarze()

Dim zakres, komorka, sum As Single

Set zakres = Application.InputBox("Podaj zakres:", "Zakres", , , , , , 8)

For Each komorka In zakres

sum = sum + komorka.Value

Next

MsgBox (sum)


End Sub





Option Explicit


Sub deklaracje()

Dim stan_konta As Currency

Dim liczba_grupy As Byte

Dim nazwiska_grupy As String

Dim masy_cząstek As Integer

Dim roczna_liczba_prac As Byte

Dim daty_urodzin_studentow As Date

Dim miejca_urodzin_studentów As String


End Sub


Sub sumowanie()

Dim x As Byte, y As Byte, sum As Byte

x = Range("a1").Value

y = InputBox("podaj a:")

sum = x + y

MsgBox (sum)

End Sub


Sub słówko()

Dim słowo As String * 5

słowo = InputBox("podaj słowo:")

MsgBox (słowo)

End Sub


Sub równanie_liniowe()

Dim a As Single, b As Single, x

a = InputBox("podaj a - współczynnik kierunkowej prostej")

b = InputBox("podaj b - współczynnik kierunkowej prostej")

If a = 0 Then

If b = 0 Then

x = "równanie tożsamościowe"

Else

x = " równanie sprzeczne"

End If

Else

x = -b / a

End If

MsgBox ("rozwiązanie równania liniowego dla: " & Chr(10) & Chr(13) & "a = " & a & Chr(10) & Chr(13) & "b = " & b & Chr(10) & Chr(13) & "x = " & x)


End Sub


Sub wczytywanko(a As Single, b As Single, c As Single)

a = InputBox("podaj a - ")

b = InputBox("podaj b - ")

c = InputBox("podaj c - ")

End Sub


Function delta(a As Single, b As Single, c As Single)

delta = b ^ 2 - 4 * a * c

End Function


Sub rów_liniowe()

Dim a As Single, b As Single, x

If a = 0 Then

If b = 0 Then

x = "równanie tożsamościowe"

Else

x = " równanie sprzeczne"

End If

Else

x = -b / a

End If

End Sub


Sub równanie_kwadratowe()

Dim a As Single, b As Single, c As Single, d As Single, x

Call wczytaj(a, b, c)


End Sub




Wyszukiwarka