Codice VBScript non funziona

Anonimo
2015-06-14T23:07:16+00:00

Carissimi, spero che Mauro si ricordi del mio post "Evitare finestra di apertura di Excel", IN QUANTO HA RISOLTO (in PARTE) IL PROBLEMA!

Mi fu consigliato di creare un file vbscript attraverso il quale aprire un file.xlsm.

Bene così fu fatto e tutto funzionava alla grande, poi sono nate altre problematiche.... (tutto quello fatto da Mauro Gamberini è stato perfetto)

bene, oggi, avrei la necessità di far comparire un messaggio del tipo:

"Attendere l'apertura del programma . . ."

mentre il file.xlsm continua ad aprirsi.

Dico questo, in quanto, essendo un file.xlsm in rete, impiega un po' (non molto) ad aprirsi e quindi gli utenti prof./assistenti/studenti, a volte cliccano una infinità di volte causando un blocco per mancanza di memoria.

Il file che accede al file.xlsm è un VbScript come consigliato da Mauro Gamberini!!!

Rifacendoci al suo costrutto (il quale funziona perfettamente), il messaggio che deve arrivare all'utente, dovrebbe essere inserito in questa posizione:

(File VBScript creato):

Dim objExcel '(Mauro)

Dim objWorkbook '(Mauro)

Dim objMsgBox '(codice inventato da noi non funziona) 

Set objMsgBox = " Attendere apertura programma prego . . ."  '(noi sempre inventato e sempre non funziona)

'==Il costrutto deve continuare ad eseguire le istruzioni==    

Set objExcel = CreateObject("Excel.Application") '(Mauro)

Set objWorkbook = objExcel.Workbooks.Open("C:\Prova\tuoFile.xlsm", Password:="MiaPassword")     '(Mauro...noi abbiamo aggiunto la password, per l'apertura automatica ma non funziona)

    objExcel.Visible = True '(Mauro)

    Set objWorkbook = Nothing '(Mauro)

    Set objExcel = Nothing '(Mauro)

    Set objMsgBox = Nothing '(noi) =per chiudere il messaggio iniziale all'utente=

Infine il file.xlsm è protetto da password, come posso inserire codice nel vbscript per aprirlo automaticamente?

Spero di essere stato chiaro.

Grazie sempre

Carlo Raffaele

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-06-15T14:10:39+00:00

Noi, però abbiamo la necessità di usare un file vbs per i noti problemi già segnalati.

<cut>

Prova (in grassetto le parti da modificare con i tuoi riferimenti):

Dim objExcel

Dim objWorkbook

Dim ObjProgressMsg

Function ProgressMsg( strMessage, strWindowTitle )

    Set wshShell = WScript.CreateObject( "WScript.Shell" )

    strTEMP = wshShell.ExpandEnvironmentStrings( "%TEMP%" )

    If strMessage = "" Then       

        On Error Resume Next

        objProgressMsg.Terminate( )

        On Error Goto 0

        Exit Function

    End If

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    strTempVBS = strTEMP + "" & "Message.vbs"     'Control File for reboot

    Set objTempMessage = objFSO.CreateTextFile( strTempVBS, True )

    objTempMessage.WriteLine( "MsgBox""" & strMessage & """, 4096, """ & strWindowTitle & """" )

    On Error Resume Next

    objProgressMsg.Terminate( )

    On Error Goto 0

    Set objProgressMsg = WshShell.Exec( "%windir%\system32\wscript.exe " & strTempVBS )

End Function

Do Until Err.Number <> 0

 ProgressMsg "File in apertura. Non chiudere la finestra.", "Attendere, prego."

 On Error Resume Next

 Err.Number = 0

 objWorkbook.Worksheets("Foglio1").Select

Loop

Set objExcel = CreateObject("Excel.Application")

Set objWorkbook = objExcel.Workbooks.Open("C:\Prova\test.xlsm",,,,"pippo", "pippo")

ProgressMsg "", ""

objWorkbook.Activate

objExcel.Visible = True

Set objProgressMsg = nothing

Set wshShell = Nothing

Set objFSO   = Nothing

Set objWorkbook = Nothing

Set objExcel = Nothing

NOTA. L'utente può chiudere la MsgBox e il procedimento di apertura del file continua.

Il codice per la gestione del MsgBox NON è farina del mio sacco. Chiedo scusa all'autore ma non ricordo il sito dal quale l'ho scaricato.

Per la password. Nota come fra la stringa che contiene la path al file da aprire e le password, ci siano 4 virgole. VBS non accetta parametri come Password:="tuapassword", ma vuole solo la stringa che contiene la password. Ti ricordo che per visualizzare il codice del VBSript, sia sufficiente fare click con il tasto dx del mouse sull'icona e selezionare: Modifica o Apri con.

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-06-16T06:25:48+00:00

    N.B. credi che possiamo stare tranquilli che la password inserita nel file vbs e compilato in .exe, non viene letta facilmente, secondo il discorso che facevamo sopra???

    <cut>

    Se è compilato, ok.

    Scusa, ma non ricordavo quel particolare.

    Ciao e alla prossima.

    La risposta è stata utile?

    0 commenti Nessun commento