Newsgroup: it.comp.lang.visual-basic
Titolo: VBA Word la prima volta!

Sto tentando di creare la prima funzione con VBA di MSWord2002.
E sto solo facendo delle prove con gli esempi dell'help, ho copiato tale e
quale il seguente esempio:
Sub OpenTextFileTest()
    Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Dim fs, f
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.OpenTextFile("c:\test.txt", ForAppending, TristateFalse)
    f.Write "Salve"
    f.Close
End Sub
Non funziona, mi da sempre "errore di run time 5
chiamata di routine o argomento non validi."
La riga incriminata č quella con Open..
Non risco a trovare l'errore, qualcuno mi sa dire perchč?
Grazie, ciao
Paolo

> "Paolo Mazzanti" [...]:

L'esempio fornito da Microsoft e' sbagliato. La sintassi e':
    Function OpenTextFile(FileName As String, [IOMode As IOMode =
ForReading], [Create As Boolean = Falso], [Format As Tristate =
TristateFalse]) As TextStream
        Membro di Scripting.FileSystemObject
        Apre un file come TextStream
mentre il valore delle costanti di IOMode e':
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
E quel "TristateFalse" e' fantasia pura perche' avrebbero almeno dovuto
definirlo, come hanno fatto per i valori di IOMOde, e metterlo in quarta
posizione e non in terza. Puoi quindi riscrivere:
Option Explicit
Sub OpenTextFileTest()
  Const ForReading = 1, ForWriting = 2, ForAppending = 8
  Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
  Dim fs, f
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.OpenTextFile("c:\test.txt", ForAppending, , TristateFalse)
  f.Write "Salve"
  f.Close
  Set f = Nothing
  Set fs = Nothing
End Sub
Se, come dici, stai "tentando di creare la prima funzione con VBA" renditi
conto che in realta' sei cascato in pagine che riguardano piu' VBScript che
VBA. Infatti la sintassi usata nella guida, errori a parte, non e' quella
tipica di VBA. Son cose queste che ti saranno piu' chiare andando avanti ma
sarebbe bene iniziare col piede giusto. Cerca quindi nella guida le sezioni:
    Informazioni preliminari su Visual Basic per Microsoft Word
    Concetti generali di Visual Basic
e vai avanti passo passo con quelle.
Dimenticavo. Invitare, negli esempi, ad usare la cartella radice del disco
C: per far esperimenti puo' essere definito, come minimo, attentato alla
salute mentale degli utenti.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

Ma a questo punto, se non ci si può fidare dell'help, come si può costruire
una funzione che "funzioni"?
Esitse un sito che abbia degli esempi validi?
In questo momento mi serve solo aprire un file di MSWord2002 mio.doc,
leggerlo in maniera sequenziale, e impostando i miei criteri, estrarre solo
le righe di mio interesse e inserirle in Mionuovo.doc.
Se mi puoi dare qualche consiglio ti ringrazio anticipatamente.
Ciao
Paolo

 [...]

<fine esempio>
in modo che la persona interessata, in questo caso io, scorrendo velocemente
i post, come si fa di solito, coglie immediatamente che e' coinvolto nel
discorso, ha la possibilita' di leggere un sunto dell'argomento senza andare
alla ricerca dei post precedenti e puo' cosi' rispondere velocemente senza
perdite di tempo.
Vengo ora alle due questioni che sollevi:
1. se non ci si può fidare dell'help, come si può costruire una funzione che
"funzioni"?
La guia non e' un cosro. Chiaro cosa ho scritto, vero? Il contesto e le
tue conoscenze della lingua italiana ti mettono sicuramente in condizione di
capire che ho fatto degli errori di battitura e che volevo scrivere "la
guida non e' un corso". Penso che la risposta sia evidente, a questo punto.
Prima bisogna studiare. O fai un corso (ma non chiedermi informazioni in
proposito che non saprei che dirti) o ti procuri dei libri che abbiano una
impostazione semplice e progressiva. O sfrutti Internet che in proposito e'
una vera miniera. Il posto giusto da dove cominciare e' sicuramente il "Sito
comune" di questo ng:
 
http://it-lang-vb.net/
2. estrarre da mio.doc delle righe e inserirle in mionuovo.doc.
Il formato dei file di Microsoft Word e' tale per cui non e' per nulla
semplice accedere per estrarre parti di testo nella maniera che intendi tu.
Normalmente per far questo si usa il modello a oggetti di Word per
"navigare" nel documento.
