Archivi categoria: Office

Programmazione in ambito Microsoft Office (Word, Excel, Access…) con VBA ecc.

Una "app-book" su Office 2016 per Windows 10

Ho appena pubblicato una innovativa “app” per PC con Windows 10, scaricando la quale potrete avere una copia del mio libro “OFFICE 2016 PER PRINCIPIANTI” pubblicata in cartaceo su Amazon (a colori http://bit.ly/office2016colori – in bianco e nero http://bit.ly/office2016bn, rispettivamente a 51,90 € e a 15,50 €).

Su Microsoft Store, invece, potete ottenerla al prezzo competitivo di 2,99 € visitando questo indirizzo:

https://www.microsoft.com/it-it/store/p/garage40-book/9nvq854f11bw?rtc=1

24993263_10155601250416971_4284645672449403797_n

La versione sullo Store è uguale alla copia a colori cartacea e quindi il vantaggio economico è enorme per chi volesse preferire la versione digitale piuttosto che quella cartacea.

A chi potrebbe servire una “app-book” come questa? A studenti (dalle elementari in su), a persone più “mature” che volessero imparare a usare Office, alle aziende che volessero organizzare corsi per i propri dipendenti, a singole persone che devono partecipare a una selezione di lavoro (concorso, colloquio con prove pratiche ecc.) e, perché no?, anche a persone semplicemente curiose.

Il vantaggio di una “app-book” in sostanza qual è? In questo caso abbiamo un libro “completo” con argomenti che vanno da Office 2016 in generale, fino ai dettagli d’uso di Word, Excel e Power Point. Ma non finisce qui: chiunque può segnalare un refuso, un errore nel testo e questo sarà corretto nella versione successiva, pubblicata nello Store e aggiornata automaticamente da Windows 10! Inoltre il libro così com’è è virtualmente “finito” (come può esserlo un libro di testo stampato), ma è potenzialmente suscettibile di adeguamenti, modifiche ed estensioni. Per esempio, se le richieste saranno relativamente numerose, si potrà aggiungere un ulteriore capitolo su un argomento di interesse, sempre incentrato su Office 2016.

Insomma, sono molto soddisfatto di questo primo risultato e spero che possa piacervi.

Buona lettura! Winking smile

[VB6] Gestione specifiche import-export di database Access

Per il mio lavoro, spesso ho la necessità di gestire l’importazione e l’esportazione di file di dati (tipicamente file di testo con record a lunghezza fissa) da Microsoft Access. Per queste attività ho sempre utilizzato la gestione delle specifiche di importazione/esportazione nativa di Access, ma è una funzionalità che non mi ha mai soddisfatto completamente.

Per esempio ci sono stati dei casi in cui non sono riuscito a modificare una specifica già esistente e ho dovuto ricrearla da zero, senza contare il problema di inserire un campo all’interno di una specifica già esistente: in questo caso è necessario ricalcolare manualmente il carattere di partenza di ciascun campo successivo. Anche lo spostamento di un campo in una diversa posizione è un’attività che può diventare un’atroce perdita di tempo.

Ecco quindi che, diverso tempo fa, ho pensato di creare un progetto in Visual Basic 6.0 (download di 153 kb). Anzi, i progetti sono più di uno:

  • un progetto che comprende l’interfaccia principale (ImportExport.vbp)
  • un progetto che comprende l’interfaccia per la gestione delle specifiche (Specifiche.vbp)
  • un progetto per gestire le attività di importazione (Import.vbp)
  • un progetto per gestire le attività di esportazione (Export.vbp). 

Con il link sopra riportato potete scaricare tutti questi progetti, con anche gli eseguibili già compilati, un database di prova e alcuni file di testo, con qualche specifica di importazione/esportazione già caricata.

Le specifiche, infatti, vengono caricate in una tabella di Access. E’ possibile estrarre anche le specifiche da un database già esistente e salvarle in questa tabella speciale, così da centralizzare tutte le attività di importazione/esportazione.

Non è tutto: considerato che potrebbe essere necessario eseguire un’importazione/esportazione anche direttamente da un programma VBA scritto all’interno di Access (o di un altro prodotto Office) o perfino in un proprio programma scritto in qualsiasi altro linguaggio (perfino VB.NET), ho pensato di gestire i parametri della riga di comando utilizzati per avviare i programmi Import.exe e Export.exe.

In questo modo è possibile avviare, per esempio, Import.exe passandogli già i parametri necessari per eseguire l’importazione senza nemmeno aprire la sua interfaccia grafica! Il trucco sta tutto nell’evento Load del form Import.frm:

Private Sub Form_Load() 
    ReDim argv(5) As String 
    Dim i As Integer 
    
    Dim sNomeFile 
    Dim sNomeSpecifica 
    Dim sNomeDB 
    Dim sNomeTabella 
      

    ' legge la riga di comando: 
    argv = GetCommandLine(argv) 
    
    If argv(1) <> "" Then 
        ' i parametri vengono passati secondo quest'ordine: 
        sNomeFile = argv(1) 
        sNomeSpecifica = argv(2) 
        sNomeDB = argv(3) 
        sNomeTabella = argv(4) 
        sFlagDelete = argv(5) 
        
        If argv(5) = 1 Then 
            Call DeleteTable(sNomeDB, sNomeTabella) 
        End If 
        
        If argv(1) <> "" Then 
            Call ImportaFile(sNomeFile, sNomeSpecifica, sNomeDB, sNomeTabella) 
        End If 
        
        ' annulla il caricamento del form: 
        Unload Me 
        Exit Sub 
    End If 
    
    ReDim arraySpecifiche(1) 
    arraySpecifiche = ElencaSpecifiche() 
    
    Me.txtNomeSpecifica.Clear 
    For i = 1 To arraySpecifiche(0) 
        Me.txtNomeSpecifica.AddItem arraySpecifiche(i) 
    Next i 
        
End Sub

Per ultima, una piccola precisazione: questo programma l’ho scritto qualche anno fa, ma non l’avevo mai pubblicato prima, quindi è una soluzione assolutamente inedita.

Può sembrare anacronistico un progetto scritto in VB6 come nuova soluzione, visto che ormai .NET è diventata la piattaforma di sviluppo prevalente, ma c’è una considerazione da tenere presente: tra i file forniti con il file compresso c’è anche un report dell’analisi eseguita con Code Advisor per verificare la compatibilità dei progetti con VB.NET. L’esito è assolutamente confortante, dato che viene segnalato solo un piccolo problema relativo a Option Explicit, facilmente eliminabile.

Ovviamente questo progetto può essere utilizzato come prototipo per realizzare una soluzione analoga e più orientata agli oggetti, utilizzando codice VB.NET puro.

In ogni caso spero che possa essere utile a chi, come me, ha avuto problemi nell’utilizzo delle funzionalità native di Access per la gestione delle specifiche di importazione/esportazione.

[VSTO] creazione di un task panel tramite VB.NET e C#

Sul blog di Emanuele Mattei è stato pubblicato un articolo sulla gestione di un task panel in Office: http://blog.shareoffice.it/emanuele/articles/9240.aspx.

Anche in questo caso, la tecnologia trattata è VSTO, cioè Visual Studio Tools for Office che ora, nella nuova versione di Visual Studio 2008 (in particolare nella versione Professional), è incluso del prodotto stesso e non è più necessario installarlo come add-in separato.

[VSTO] Creare uno Smart Tag in Word

Sul sito www.iprogrammatori.it è stato pubblicato un articolo che spiega la procedura per creare uno smart tag in Word, utilizzando Visual Tools for Office (VSTO).

Articolo completo QUI. Nella pagina è possibile anche trovare un link per scaricare l’esempio.

[Excel 2007] Patch per bug nei calcoli

Il 26 Settembre 2007, Punto Informatico aveva segnalato un bug nei calcoli di Excel 2007: http://punto-informatico.it/p.aspx?id=2073462

In particolare risultano errati questi calcoli che dovrebbero fornire in tutti i casi 65535, mentre invece forniscono 100000:
=5,1*12850
=10,2*6425
=20,4*3212,5
=40,8*1606,25
=850*77,1
=77,1*850
=154,2*425
=212,5*308,4
=308,4*212,5
=425*154,2

Microsoft ha fornito la spiegazione ufficiale dell’errore, attribuendolo ad un errore di visualizzazione e non di calcolo. Infatti è sufficiente aggiungere alla formula di cui sopra -1 oppure +2 e otterremo il risultato corretto:
http://blogs.msdn.com/excel/archive/2007/09/25/calculation-issue-update.aspx

Errore di calcolo o errore di visualizzazione, la cosa comunque è estremamente inquietante, tanto che Microsoft ha anticipato una patch per risolvere il problema, come indicato nel nuovo articolo di Punto Informatico:
http://punto-informatico.it/p.aspx?id=2085908

Ecco quindi la patch, scaricabile da: http://blogs.msdn.com/excel/archive/2007/10/09/calculation-issue-update-fix-available.aspx e che dovrebbe essere inclusa nel Service Pack di Office 2007 e tra gli aggiornamenti di Windows Update.

[Access] Diagrammi di Gantt con Access per la pianificazione di progetti

Sul sito Microsoft (portale per le PMI) è disponibile un articolo che spiega come è possibile creare diagrammi di Gantt con Access per la pianificazione di progetti. Dalla stessa pagina è possibile scaricare un file PDF con l’intero articolo e un file .zip con il database Access di esempio.