none
Excel VBA-Makro aus Anwendung aufrufen. RRS feed

  • Frage

  • Hallo Füchse

    Ich kämpfe immer noch mit dem Erzeugen eines QR-Codes. Ich habe ein funktionierender VBA-Code, diesen möchte ich jetzt aus meiner Anwendung aufrufen. Die Anwendung öffnet die Excelmappe (das klappt) und jetzt möchte ich via oBook.Call "MakroName" oder so ähnlich dieses Makro starten.
    Herzlichen Dank für einen Tipp

    Beste Grüsse

    Adi

    Mittwoch, 28. September 2022 15:31

Alle Antworten

  • Moin, moin

    davon rate ich DRINGEND ab. Auf den meisten Computern ist die Ausführung von Makros aus gutem Grund abgeschaltet und kein Admin wird das erlauben.

    Es kann mit den Libs (siehe anderer Post) so einfach sein :

      lO = Createobject("qrcode", "Das ist ein Test")
      lO.makeqr()

     in lo.cqrpic ist dann das Bild mit dem Barcode.

    Grüße

    tom

    Projekt : https://github.com/VFPX/FoxBarcode

    Dienstag, 4. Oktober 2022 08:23
  • Guten Tag Tom

    Besten Dank für deine Einschätzung. Ich gebe dir Recht, das ist nicht die feine Art ein Makro aus einer Applikation aufzurufen. ich versuche jetzt, die paar VBA-Zeilen in FoxPro umzuwandeln. 

    Besten Dank und Grüsse
    Adi

    Freitag, 7. Oktober 2022 16:05
  • Hallo Tom, Hallo Füchse

    Ich habe jetzt auf Anraten von Tom (Danke dafür) auf Makro verzichtet. Ich kann jetzt ganz einfach die App via
    run App gefolgt von Parametern starten. Der ganze Aufruf mit Parametern habe ich in eine Variable gekappt. Das funktioniert sehr gut. Ein Problem könnte auftauchen, wenn der String länger als 256 char ist. Gäbe es dann eine andere Möglichkeit? zBsp. run &lcPara1+lcPara2 oder so ähnlich?
    Besten Dank für einen Tipp und Grüsse

    Adi

    Montag, 10. Oktober 2022 12:49
  • Moin, moin

    schau Die mal shellexecute() an, soweit ich mich erinnere gibt es da eine Begrenzung erst bei 2048 Zeichen

    Declare Integer ShellExecute In shell32.Dll ;
      INTEGER hndWin, ;
      STRING cAction, ;
      STRING cFileName, ;
      STRING cParams, ;
      STRING cDir, ;
      INTEGER nShowWin
    

    Grüße

    tom

    Mittwoch, 12. Oktober 2022 07:32