Function Probe(ByVal X As Integer, ByVal Y as Integer) As Double
Ten kawałek tworzy funkcje i określa jej parametry wejściowe, lecz w tej formie raczej się nie zda.
Function
Probe(
ByVal X As Integer,
ByVal Y as Integer)
As Double
komenenda Function tworzy funkcję po niej podajemy nazwę funkcji nasze Probe i jeśli funkcja Probe przyjmuje jakieś zmienne deklarujemy je w nawiasie jeśli nie zostawiamy pusty nawias (
Function Probe() )
w Twoim przykładzie zainicjowałeś tylko dwie zmienne i to ostatnie As Double jakby zbędnne..
Pozatym widzę że przekazujesz funkcji zmienne dla wartości x y i jako typ danych wskazujesz na Integer co mi średnio pasuje z racji narury tego typu znaków. W dużym skrócie to typy danych wyglądają następująco (ich część (to nie poradnik

):
kilka typów zmiennych, ich nazwa i zakres:
liczby zmiennoprzecinkowe np
-123.765,
999.999
Single = –3.4028235
38 do 3.4028235
38
Double = –1.79769313486231570
308 do 1.79769313486231570
308
liczby całkowite:
-1,
-4,
8,
100,
1000
Long = –9,223,372,036,854,775,808 do 9,223,372,036,854,775,807
Integer = –2,147,483,648 do 2,147,483,647
String = łańcuch znaków np "
www.cnc.info.pl"
char = przechowuje pojedyńczy znak np : '
a'
byte = 0..255 jeden bajt pamięci
Boolean = True, False (logiczne zero lub jedynka logiczna 0, 1)
Deklarując zmienne typu integer dla osi XY w funkcji Probe ograniczasz dokładność danych do 1 co nie jest raczej pożądane.
lepiej zastosować single albo double.
Dim ZPos as Double ' Nic nie daje
Choć wydawać się może, że ten kod nie działa, tak naprawdę jest jak najbardziej poprawny i działa.
Dim to deklaracja zmiennej
ZPos nazwa zmiennej
as przypisanie typu zmiennej
double typ zmiennej
ZPos = GetOEMDRO (802) 'Get Z
tutaj do zmiennej zpos została wprowadzona wartość pozycji osi Z
Return ZPos <- SYNTAX ERROR zaznacza mi zmienną
End Function
w ten sposób nie wyświetlisz wartości ZPos
możesz wykorzystać komendę MsgBox i jako jej jedyny argument podać jakiś text w cudzysłowiu, lub zmienną bez cudzysłowia np
MsgBox "hello world"
MsgBox "
Pozycja Z: "
& ZPos & "
mm"
a to że jakaś komenda lub funkcja zwraca coś to wyglądać mże to np:
Kod: Zaznacz cały
Public Sub MsgPrint (ByVal sMsg As String, ByVal iType As Integer, ByVal sTitle As String)
iMsgBack = MsgBox(sMsg, iType, sTitle)
End Sub
w tym przykładzie funkcja MsgBox zwraca wartość zakończenia do zmiennej typu integer o nazwie iMsgBack.
Dodane 56 minuty 40 sekundy:
To
as double na początku wygląda jak deklaracja wartosci zwracanej przez funkcje. Przez co mogłem namieszać trochę. Sprawdzę to później.