stampare le proprietà in Word

Anonimo
2013-04-09T08:52:14+00:00

Ho la necessità di stampare soltanto le proprietà di una serie di documenti contenuti in una determinata cartella.

Ad esempio: in formato tabella voglio stampare soltanto la proprietà "oggetto" di una serie di file di Word, in modo da avere un elenco di "oggetti".

E' possibile? In caso affermativo, mi indicate la procedura?

Grazie

Microsoft 365 e Office | Word | 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
2013-04-09T14:12:03+00:00

Ciao Fangio49,

copia il seguente codice in un modulo Visual Basic di un nuovo documento:

Public Sub CreaListaOggetti()

On Error GoTo ErrH

Const cstrFolder = "C:\Archivi\Forums" ' <--- Modificare

Const cstrFileExtList = "doc,docx"     ' <--- Modificare se necessario

Const FMTID_SummaryInfo = "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}"

Const PID_SUBJECT = "3"

Const SCID_SUBJECT = FMTID_SummaryInfo & "," & PID_SUBJECT

Const ReadOnly = &H1

Const Hidden = &H2

Dim objWdApp          As Word.Application

Dim objWdDoc          As Word.Document

Dim objWdTab          As Word.Table

Dim fso               As Object 'Scripting.FileSystemObject

Dim sh                As Object 'Shell32.Shell

Dim objStartFolder    As Object 'Scripting.Folder

Dim objFolder         As Object 'Scripting.Folder

Dim objFile           As Object 'Scripting.File

Dim objFolder2        As Object 'Shell32.Folder2

Dim objFolderItem     As Object 'Shell32.ShellFolderItem

Dim blnAdd            As Boolean

Dim strSubject        As String

Dim lngRow            As Long

    Set objWdApp = GetObject(, "Word.Application")

    Set objWdDoc = objWdApp.Documents.Add

    With objWdDoc

      Set objWdTab = .Tables.Add(.Range, 1, 2)

    End With

    With objWdTab

      .Cell(1, 1).Range.Text = "File"

      .Cell(1, 2).Range.Text = "Oggetto"

    End With

    Set fso = CreateObject("Scripting.FileSystemObject")

    Set sh = CreateObject("Shell.Application")

    Set objStartFolder = fso.GetFolder(cstrFolder)

    For Each objFile In objStartFolder.Files

      If Not (objFile Is Nothing) Then

        With objFile

          blnAdd = StrComp(.Path, ThisDocument.FullName, vbTextCompare)

          If blnAdd Then blnAdd = Not ((.Attributes And ReadOnly) = ReadOnly)

          If blnAdd Then blnAdd = Not ((.Attributes And Hidden) = Hidden)

          If blnAdd Then

            If Len(cstrFileExtList) Then

              blnAdd = InStr(1 _

                           , "," & cstrFileExtList & "," _

                           , "," & fso.GetExtensionName(objFile) & "," _

                           , vbTextCompare) > 0

            Else

              blnAdd = True

            End If

          End If

          If blnAdd Then

            blnAdd = False

            Set objFolder2 = sh.NameSpace(objStartFolder.Path)

            If Not (objFolder2 Is Nothing) Then

              Set objFolderItem = objFolder2.ParseName(.Name)

              If Not (objFolderItem Is Nothing) Then

                strSubject _

                  = objFolderItem.ExtendedProperty(SCID_SUBJECT)

                With objWdTab

                  .Rows.Add

                  lngRow = .Rows.Count

                  .Cell(lngRow, 1).Range.Text = objFile.Name

                  .Cell(lngRow, 2).Range.Text = strSubject

                End With

              End If

            End If

          End If

        End With

      End If

    Next

ExtP:

    Set objFolderItem = Nothing

    Set objFolder2 = Nothing

    Set objFile = Nothing

    Set objFolder = Nothing

    Set objStartFolder = Nothing

    Set sh = Nothing

    Set fso = Nothing

    Set objWdTab = Nothing

    Set objWdDoc = Nothing

    Set objWdApp = Nothing

    Exit Sub

ErrH:

    MsgBox Err.Description

    Resume ExtP

End Sub

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-04-09T20:12:28+00:00

    In verità non ho provato, perché i dati si trovano nel PC dell'ufficio. Proverò domani.

    Vedo di spiegarmi meglio:

    sono il preside di un istituto superiore, a fine anno scolastico mi interesserebbe poter stampare un "indice" delle varie comunicazioni che mando ai docenti, in una tabella di questo tipo:

    n. comunicazione (che potrei mettere nella proprietà "titolo"), oggetto della comunicazione (proprietà "oggetto").

    A fine anno le comunicazioni saranno circa 130 e tutte sono salvate nella stessa cartella.

    Ovviamente, una vola capita la procedura, potrei aggiungere altre proprietà.

    Ti ringrazio davvero per l'aiuto. Ora vorrei capire: una volta copiato il codice nel modulo VB, devo avviarlo con una macro?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-04-09T19:25:19+00:00

    Ciao Fangio49,

    hai già provato ciò che ti ho indicato?

    Poi ti ricordo che avevi scritto:

    • soltanto la proprietà "oggetto"

    (il grassetto è mio); ora invece parli anche di "titolo", "autore" e, quel che è peggio, eccetera. Io aborro la parola "eccetera". ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-04-09T17:42:05+00:00

    Per "proprietà" intendo proprio le proprietà. Cliccando su "File" e poi su "proprietà" e ancora su "proprietà avanzate" e su "Riepilogo" ecco le proprietà: "titolo" "oggetto" "autore" ecc.; io vorrei poter stampare su un nuovo file queste proprietà dei vari file contenuti in una cartella.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2013-04-09T10:59:41+00:00

    Ho la necessità di stampare soltanto le proprietà di una serie di documenti contenuti in una determinata cartella.

    Ad esempio: in formato tabella voglio stampare soltanto la proprietà "oggetto" di una serie di file di Word, in modo da avere un elenco di "oggetti".

    E' possibile? In caso affermativo, mi indicate la procedura?

    Grazie

    Non ho capito, scusa, cosa intendi per *proprietà oggetto*. Grazie.

    Per me le proprietà di un documento di Word sono o la composizione del documento, o i dati relativi a date di creazione/modifica ecc.

    La risposta è stata utile?

    0 commenti Nessun commento