predcis
15.04.2008, 16:34
Dobry den,
zacal som rozmyslat nad jednym programcekom, ktory by z excelu nacitaval data a podla nich by kreslil veci do autocadu. Zatial len testujem ciastkove ulohy a rozmyslam ako na vec.
Zatial som dokazal spustit z autocadu excelovske makro, problem je vsak v tom, ze sa mi nedari "najst" alebo "preniest" premenne z excelackeho makra do acadovskeho makra.
Neviete mi prosim poradit, kde v objektovej skladbe sa nachadzaju globalne premenne (ak vobec) alebo inu fintu ako na to? Jedine co ma napadlo, je vyuzit nejaky externy textovy subor, do ktoreho by som zapisal vysledok excelovskeho makra a nacital ho do acadu, ale taketo riesenie sa mi zda tazkopadne.
Uvadzam priklad :
makro excel :
Public Hodnota As String
Public Sub pokus()
forr.Show
MsgBox Hodnota 'toto zobrazi spravny vysledok
End Sub
formular forr :
obsahuje jedno tlacitko a jedno textove pole (ma nazov hhh)
Private Sub CommandButton1_Click()
Hodnota = hhh.Value
Unload Me
End Sub
makro v acade :
Public Sub PokusSexcelom()
Dim Excelik As Object
Dim Subor As String
Dim Adresar As String
Dim ZositExcel As Workbook
Set Excelik = CreateObject("Excel.Application")
Excelik.Visible = True
Adresar = "d:\"
Subor = "makro.xls"
Set ZositExcel = Excelik.Workbooks.Add(Adresar & subor)
Excelik.Run "pokus"
MsgBox Excelik.hodnota 'tuto je problem
ZositExcel.Close
End Sub
Chcel by som sa opytat, ze ako sa dostanem ku globalnej premennej Hodnota vo vnutri acadovskeho makra. Pretoze prikaz MsgBox Excelik.hodnota zobrazuje prazdnu hodnotu.
myslim, ze C-cko pozna nieco ako extern, ale vo VBA som to nenasiel.
Dakujem za kazdy napad a radu !
Lubomir Placek
P.S. Este by som sa opytal, ma VBA ekvivalent k C-ckovym prikazom continue a ++ (trochu mi chybaju) ?
Este raz vdaka.
zacal som rozmyslat nad jednym programcekom, ktory by z excelu nacitaval data a podla nich by kreslil veci do autocadu. Zatial len testujem ciastkove ulohy a rozmyslam ako na vec.
Zatial som dokazal spustit z autocadu excelovske makro, problem je vsak v tom, ze sa mi nedari "najst" alebo "preniest" premenne z excelackeho makra do acadovskeho makra.
Neviete mi prosim poradit, kde v objektovej skladbe sa nachadzaju globalne premenne (ak vobec) alebo inu fintu ako na to? Jedine co ma napadlo, je vyuzit nejaky externy textovy subor, do ktoreho by som zapisal vysledok excelovskeho makra a nacital ho do acadu, ale taketo riesenie sa mi zda tazkopadne.
Uvadzam priklad :
makro excel :
Public Hodnota As String
Public Sub pokus()
forr.Show
MsgBox Hodnota 'toto zobrazi spravny vysledok
End Sub
formular forr :
obsahuje jedno tlacitko a jedno textove pole (ma nazov hhh)
Private Sub CommandButton1_Click()
Hodnota = hhh.Value
Unload Me
End Sub
makro v acade :
Public Sub PokusSexcelom()
Dim Excelik As Object
Dim Subor As String
Dim Adresar As String
Dim ZositExcel As Workbook
Set Excelik = CreateObject("Excel.Application")
Excelik.Visible = True
Adresar = "d:\"
Subor = "makro.xls"
Set ZositExcel = Excelik.Workbooks.Add(Adresar & subor)
Excelik.Run "pokus"
MsgBox Excelik.hodnota 'tuto je problem
ZositExcel.Close
End Sub
Chcel by som sa opytat, ze ako sa dostanem ku globalnej premennej Hodnota vo vnutri acadovskeho makra. Pretoze prikaz MsgBox Excelik.hodnota zobrazuje prazdnu hodnotu.
myslim, ze C-cko pozna nieco ako extern, ale vo VBA som to nenasiel.
Dakujem za kazdy napad a radu !
Lubomir Placek
P.S. Este by som sa opytal, ma VBA ekvivalent k C-ckovym prikazom continue a ++ (trochu mi chybaju) ?
Este raz vdaka.