Mam stare makro programu Excel 4, którego używam do uruchamiania miesięcznych faktur. Ma około 3000 linii i ma wiele arkuszy okna dialogowego Excel 5 (dla okien dialogowych). Chciałbym wiedzieć, jak najłatwiej byłoby zmienić go w Visual Basic i czy jest tego wart. Chciałbym również wiedzieć, w jaki sposób, jeśli kiedyś przekonwertowałem to na VBA, jak stworzyć samodzielną aplikację.Konwersja makr programu Excel 4 do wersji VBA
Odpowiedz
Oto dobry Artikel o tym temacie: http://msdn.microsoft.com/en-us/library/aa192490.aspx
Można pobrać VB2008-Express za darmo pod adresem: http://www.microsoft.com/express/default.aspx
AFAIK nie ma możliwości, aby przekształcić go w jakiś sposób. Musisz w zasadzie przepisać w VBA.
Po konwersji na VBA nie można uruchomić jako samodzielnej aplikacji. Ponieważ VBA stwierdza Visual Basic for Application, żyje wewnątrz aplikacji (Word, Excel, Scala, cokolwiek).
Musisz nauczyć się standardowego języka (nie makrofilmu), aby tworzyć samodzielne aplikacje. Ale musisz nauczyć się znacznie więcej niż sam język. Musisz nauczyć się różnych technik, na przykład obsługi bazy danych zamiast obsługi arkuszy Excela, drukowania zamiast drukowania Excela i tak dalej. Zasadniczo stracisz wiele funkcji, co jest oczywiste, jeśli używasz programu Excel.
Próbowałem tego wcześniej i na koniec trzeba go przepisać tak, jak powiedział Biri.
Zrobiłem sporo tej pracy, gdy nasza firma aktualizowała się z Windows NT do Windows XP. Często stwierdzałem, że łatwiej jest nie patrzeć na stary kod i zaczynać od zera. Możesz spędzić tak wiele czasu, próbując ustalić, co Excel 4 zrobił szczególnie wokół "dziwnego" okna dialogowego. W końcu, jeśli wiesz, jakie są dane wejściowe i wyjścia, często jest to bardziej czasochłonne i bardziej przejrzyste w przepisywaniu.
Niezależnie od tego, czy używać VBA, czy nie, jest w pewnym sensie inne pytanie, ale VBA jest raczej potężny i rozszerzalny, więc chociaż wolałbym używać innych narzędzi, takich jak .NET w wielu okolicznościach, działa dobrze i jest łatwy do wdrożenia.
Pod względem wartości to jest tego warte? Jeśli możesz powiedzieć, że nigdy nie będziesz potrzebował zmienić swojego makra programu Excel 4, to może nie. Ale w biznesie zawsze jest coś, co zmienia np. Stawki podatkowe, szczególnie na koniec roku. Biorąc pod uwagę, jak trudno jest znaleźć kogoś, kto mógłby obsługiwać program Excel 4, a nawet znaleźć dokumentację na jego temat, powiedziałbym, że ryzykowne jest nie przejście do VBA, ale jest to coś, co można zrównoważyć.
(Zastrzeżenie: I rozwijać biblioteki Excel-DNA)
zamiast przenosić makra VBA, który korzysta z automatyzacji COM object model, który różni się od języka makr programu Excel, raczej przenieść go do VB. NET (lub C#) działa z biblioteką Excel-DNA.
Excel-DNA pozwala na użycie C API, które bardzo dokładnie odzwierciedla język makr. Dla każdego polecenia makra, takiego jak twoje okna dialogowe, istnieje funkcja API C, która przyjmuje te same parametry. Na przykład odpowiednikiem DIALOG.BOX będzie xlfDialogBox - w tym wątku jest pewna dyskusja i przykład: http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5.
Jedną dużą zaletą tego ruchu jest to, że możesz stopniowo zmieniać części kodu, aby korzystać z interfejsu automatyzacji COM - Excel-DNA pozwala łączyć ze sobą interfejsy COM i C API.