Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43

    [VBA - Word] Lanciare una Macro da una applicazione esterna.

    Ciao a tutti.
    Ho registrato una semplice Macro in Word che inserisce nel documento dei Fields.
    Vorrei far partire questa Macro da un'applicazione esterna che riesce a vedere tra i metodi esposti dalla libreria "Microsoft Word Object Library 11.0" di Word, il metodo Run che, oltre al parametro nel quale devo specificare il nome della macro, ha molti altri parametri.

    Ho provato specificando quindi il solo nome della Macro, ma il metodo fallisce con errore "2147352567 - Exception occurred"

    Qualcuno di Voi ha idea di come, usando il metodo Run {o anche qualche altro metodo} esposto da Word possa far partire la Macro che ho registrato?

    Vi ringrazio in anticipo,

    P.S.:AH! Uso Office 2003.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Qual è l'applicazione esterna? Si tratta di un programma conosciuto?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43
    No.
    E' un programma propietario.

    Ho provato copme mi suggerisce l'Help di VB, ossia con la struttura:
    Template.Module.NameMacro

    posta nel parametro "MacroName", ma continuo ad avere sempre lo stesso errore...

    Hai un'idea di come fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43
    Non penso che comunque sia importante l'applicazione dalla quale cerco di lanciare la Macro.

    Con essa ho l'accesso a tutti i metodi esposti da Word, ma temo che il problema sia nel metodo "Run", ossia temo che non sia il metodo giusto...

    Su internet trovo sempre esempi di questo genere:
    <code>
    set links=CreateObject("Word.Application")
    set doc=links.documents.Open("c:\dlink.doc")
    dato=links.run("assegna","Aiuto")
    links.quit
    </code>

    dove viene lanciata la macro "assegna" passandole il parametro "Aiuto"...


    Siete la mia ultima speranza...

  5. #5
    ciao... hai risolto? io ho il tuo stesso problema ed ho seguito l'esempio (che ho trovato online) uguale al tuo, ma mi dice che non posso eseguire la macro!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    43
    Sì.

    Per far partire la Macro (che ho chiamato "Crea_Fileds_After") ho utilizzato il seguente codice:

    codice:
    ...
    
    Dim Template_Name, Module_Name, Macro_Name As String
    Dim My_Appl As Word.Application
        
    	Template_Name = "Normal"
    	Module_Name = "My_Macros"
    	Macro_Name = "Crea_Fields_After"
        
    	Path_Macro = Template_Name & "." & Module_Name & "." & Macro_Name
    
    	My_Appl.Run (Path_Macro)
    ...
    Tale codice l'ho messo in una Function che a sua volta è in una dll che espone appunto tale Function.
    La mia applicazione esterna potrà, tramite quella funzione esposta dalla dll, lanciare la Macro.

    Spero di esserti stato di aiuto.

  7. #7
    Si grazie... Da vb funge, è con il VBscript che non riesco...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.