Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Dai virus delle macro alle funzioni interne di Word (seconda parte)

Questa lezione, consultata da 3696 utenti, è stata giudicata di ottimi contenuti , con un'esposizione perfettamente comprensibile e con un livello di approfondimento ottimo da 54 votanti.


Il contenuto del documento

Una volta analizzata la lista delle funzioni dal menu Macro, si può decidere su quale particolare funzione andare ad operare. La creazione di un report in Word rende sicuramente necessario l'inserimento di un testo nel nuovo documento.
Seguendo pertanto le istruzioni dell'articolo precedente si creerà innanzitutto una nuova sessione generica di Word e ad essa si andrà ad aggiungere ed ad attivare un documento:

Dim appWord As Object
Dim docWord As Object

Private Sub Form_Load()
Dim TestoDaInserire As String
Dim Titolo As String
Set appWord = CreateObject("Word.Application")
appWord.Visible = True
Set docWord = appWord.documents.Add
docWord.Activate
TestoDaInserire = "Questo testo rappresenta il contenuto del Report in Word richiamato da un'applicazione Visual Basic."
Titolo = "Report"
End Sub

Il testo da inserire può essere incluso in una stringa di testo, posizionata subito di seguito all'attivazione del documento, proprio come nel caso del titolo del report.
L'inserimento del titolo unitamente al testo può essere effettuato nel seguente modo:

With appWord.Selection
.InsertParagraphAfter
.Font.Bold = True
.Font.Size = 12
.Font.Name = "arial"
.Paragraphs(1).Alignment = wdAlignParagraphCenter
.TypeText Titolo
.TypeParagraph
.TypeParagraph
.InsertParagraphAfter
.Font.Bold = False
.Font.Size = 10
.Font.Name = "arial"
.Paragraphs(1).Alignment = wdAlignParagraphJustify
.TypeText TestoDaInserire
End With

Utilizzando il codice sopra si possono visualizzare degli errori dati dalla mancata definizione delle costanti di allineamento dei paragrafi (rispettivamente wdAlignParagraphCenter e wdAlignParagraphJustify). Non avendo importato infatti la libreria Word, anche le costanti ad essa legate non sono definite.
Sarà quindi necessario definirle all'inizio del progetto, nel seguente modo:

Private Const wdAlignParagraphCenter = 1
Private Const wdAlignParagraphJustify = 3


Adesso che il report ha preso una certa forma è necessario ritornare alla trattazione delle funzioni interne di Word. Di certo si vorrà evitare che l'utente rimuova il testo semplicemente premendo il pulsante Annulla (Undo).
E' pertanto necessario disabilitare questa caratteristica.
La funzione di Word che si occupa di compiere tale operazione è ModificaAnnulla come mostrato nella finestra Macro sottostante:

Disabilitare l'annullamento di un comando o della digitazione di un testo significa andare a scrivere una funzione ModificaAnnulla (quindi col medesimo nome della funzione interna di Word), con un codice differente, in modo che questa si sovrapponga ed annulli la funzione di default.
Il grafico sottostante schematizza questo processo:

In realtà esistono varie relazioni tra una funzione interna a Word ed una con lo stesso nome generata tramite una macro.
Esiste la sovrapposizione come nel caso del grafico: mentre la funzione di default si trova nel modello Normal, la nuova funzione si trova esclusivamente in un modulo di codice dell'editor VBA all'interno del documento aperto.
In questo modo la nuova funzione sostituirà quella di default finchè il documento non verrà chiuso.
Esiste poi la sostituzione, modalità di cui fanno uso i virus delle macro: la funzione creata viene salvata proprio nel modello Normal, andando così a sovrascrivere la funzione di Word.
All'apertura di qualsiasi documento generato da quel modello Normal, la nuova funzione verrà così attivata.
Per comprendere come e dove scrivere una nuova funzione, è necessario analizzare la struttura dei moduli dell'editor di codice VBE.
A tale scopo aprire l'editor tramite Strumenti->Macro->Visual Basic Editor.
Apparirà un ambiente di sviluppo simile al classico di Visual Basic. E sulla colonna di sinistra sarà riportata una struttura simile a quella mostrata in figura:

dove Normal rappresenta il modello col quale è stato generato il documento e Project (NomeDocumento) rappresenta il documento corrente.
Il modulo di codice evidenziato e denominato NewMacros rappresenta il contenitore delle macro generate dallo sviluppatore ed applicabili a tutti i documenti Word. Questo significa che è stato deciso di scrivere delle macro all'interno del modello Normal.
Per generare un nuovo modulo di macro applicabile unicamente al documento attivo (cioè al report generato dall'applicazione Visual Basic) si dovrà inserire il seguente blocco di codice:

Dim NewModule As Object
Set NewModule = appWord.activedocument.VBProject.VBComponents.Add(1)
NewModule.Name = "ModuloMacro"

Il risultato dovrebbe rispecchiare il contenuto della figura sottostante:


Questo nuovo modulo di codice sarà il punto di partenza per andare a scrivere la nuove funzioni.