2011-11-28 27 views
7

io uso:Incorpora file EXE nel file Excel

retVal = Shell("program.EXE " & filename, vbNormalFocus) 

Per eseguire la necessità programma per il mio foglio di calcolo Excel.

È possibile incorporare il file EXE nel file excel stesso?

E come dovrei eseguirlo allora?

Ideias:

1 - Una specie di funzione bin2str girare binario stringa (così posso memorizzarlo nel programma come una variabile e un str2bin (l'oposite)

2 - ho letto qualcosa su controllo OLE (che è possibile incorporare lì), ma io davvero non so da dove cominciare su questo

+0

No downvote. Non puoi dare il programma esterno con il foglio di Excel senza incorporarlo. – Mudassir

+0

Utente con cattiva condotta che devo affrontare. E so che non elimineranno i file xls. Non sono così sicuro di altri file che ho messo lì. Anche più facile da distribuire –

+2

È possibile verificare la presenza di file su cui si basa il programma e, se non si trova nessuno dei file, informare l'utente. Devono tenere tutti i componenti se vogliono usare il tuo programma. – Mudassir

risposta

6

Ecco una bozza di soluzione che evita OLE:

  1. Creare un foglio di lavoro nascosto.
  2. Utilizzare una base 64 codificata per convertire l'exe in testo.
  3. Memorizza quel testo nelle celle del foglio di lavoro sul foglio di lavoro nascosto. Poiché esiste un limite al numero di caratteri in una cella (32.767), è necessario suddividere la stringa in blocchi.

Ovviamente è necessario invertire questa procedura quando si desidera salvare ed eseguire il file exe.

+5

Oh. Mio. Dio. Questo è empio e mi fa venir voglia di uccidermi. +1 –

+0

@ Jean-François Lo so, mi fa anche queezy! –

2

È possibile farlo utilizzando: Inserisci> Oggetto e quindi selezionando "Crea da file".

per aggiungerlo alla vostra scheda utilizza VBA:

Dim o As OLEObject 
Set o = ActiveSheet.OLEObjects.Add(Filename:="C:\program.exe") 

Allora questo è il comando da eseguire program.exe:

o.Verb Verb:=xlPrimary 

Non sai come passare argomenti ad esso, tuttavia (ad esempio, il tuo filename).

Nota: le applicazioni non attendibili richiedono un avviso quando vengono eseguite.

Problemi correlati