Powerpoint: bagaimana cara memasukkan properti dokumen (alias 'bidang') di slide?

31

Bagaimana saya bisa menyisipkan properti dokumen (misalnya nama penulis) dalam slide di PowerPoint 2007? Saya tahu ini bisa dilakukan di Microsoft Word, tetapi saya tidak bisa menemukan cara melakukannya di PowerPoint.

(Idenya adalah bahwa dengan properti dokumen mudah untuk mengubah misalnya konten footer di semua slide, bahkan jika Anda menggunakan halaman master yang berbeda. Jika ada solusi yang berbeda, itu juga akan baik-baik saja.)

Rabarberski
sumber

Jawaban:

19

Sementara Word dapat melakukan ini, PowerPoint tidak bisa. AFAIK, Anda dapat memiliki properti dokumen dalam PPT, tetapi Anda tidak dapat memasukkannya pada slide. Satu-satunya bidang pembaruan yang tersedia untuk PowerPoint adalah tanggal dan nomor slide. Bagaimanapun, mungkin ada beberapa solusi di VBA untuk mencapai ini. Anda dapat menanyakan ini di Stackoverflow untuk memanfaatkan kesempatan Anda.

Mehper C. Palavuzlar
sumber
6

Baru saja menulis sebuah subrutin untuk memasukkan properti bernama ke objek teks yang ditandai pada semua slide.

Untuk menempatkan properti file ke slide. Buat kotak teks untuk menahan string. Dalam properti / Teks Alt masukkan nama properti ke dalam tanda kurung siku.

Kemudian jalankan makro updateProperties().

yaitu [title]- akan memungkinkan judul dokumen diperbarui pada banyak

Dua tag khusus telah ditulis:

  • [copyright]akan memasukkan string hak cipta, yaitu © 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] akan memasukkan nomor slide dari tab editor
  • 'Salin properti dokumen ke semua slide
    '(c) 2013, P.Boothroyd untuk NIS Oskemen
    Dim processPage As Slide
    
    Sub pembaruanProperti ()
        Halaman redup Sebagai Slide
        Dim propname As String
        parsing semua slide dalam presentasi aktif (dokumen)
        Untuk Setiap Proses Halaman Dalam Aplikasi. Presentasi Aktif
            'pindai semua elemen halaman untuk kotak teks dengan tag "altText / title" dengan "["
            Untuk Setiap obj Di processPage.Shapes
                If Left (obj.Title, 1) = "[" Lalu
                    Dim sMulai, sEnd Sebagai Integer
                    'Ambil properti dari antara kurung kotak
                    sStart = 2
                    sEnd = InStr (2, obj.Title, "]")
                    propname = Trim (Pertengahan (obj.Title, sStart, sEnd - 2))
                    Jika obj.Type = msoTextBox Lalu
                        'atur kotak teks ke nilai yang diminta
                        obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text)
                    Berakhir jika
                Berakhir jika
            Keberatan selanjutnya
        Halaman selanjutnya
    End Sub
    
    dapatkan properti dokumen bernama (dengan default opsional)
    Fungsi getProperty (propname, Def opsional As String) Sebagai String
        'Properti menetapkan nilai default
        getProperty = def
        Dim menemukan As Boolean
        ditemukan = Salah
        propname = LCase (propname)
    
        'Hak cipta adalah properti yang dihasilkan
        If propname = "copyright" Lalu
            Penulis redup As String
            Dim company As String
            Dim yearFrom As String
            Dim yearTo As String
    
            dapatkan semua variabel yang sesuai
            author = getProperty ("author", "")
            company = getProperty ("company", "")
            yearFrom = getProperty ("dibuat", "")
            yearTo = Format (Sekarang (), "YYYY")
    
            'masukkan simbol hak cipta
            getProperty = Chr (169) + ""
    
            'lampirkan rentang tahun untuk pemberitahuan hak cipta
            Jika tahun Dari tahun Lalu
                getProperty = getProperty + yearFrom + "-"
            Berakhir jika
            getProperty = getProperty + yearTo
    
            'tambahkan penulis
            getProperty = getProperty + "" + penulis
    
            'tambahkan pemisah untuk penulis / perusahaan jika keduanya ada
            Jika Len (penulis)> 0 Dan Len (perusahaan)> 0 Lalu
                getProperty = getProperty & ","
            Berakhir jika
            getProperty = getProperty & company
    
            'diproses, jadi kembalikan nilainya
            ditemukan = Benar
        Berakhir jika
    
        'masukkan nomor slide ke dalam dokumen
        If propname = "page" Lalu
            getProperty = processPage.SlideNumber
            ditemukan = Benar
        Berakhir jika
    
        'Jika nama yang dihasilkan dibuat mengembalikan nilai
        Jika ditemukan Kemudian GoTo ret
    
        memindai untuk properti MS (file) standar dari nilai yang disebutkan
        Untuk Setiap p Di Application.ActivePresentation.BuiltInDocumentProperties
            If LCase (p.Name) = propname Then
                getProperty = p.Value
                ditemukan = Benar
                Keluar untuk
            Berakhir jika
        Selanjutnya
    
        'memindai properti yang disesuaikan dari nilai yang disebutkan
        Jika ditemukan Kemudian GoTo ret
        Untuk Setiap p Dalam Aplikasi. Aktiva Presentasi. Properti Kustom Properti
            If LCase (p.Name) = propname Then
                getProperty = p.Value
                ditemukan = Benar
                Keluar untuk
            Berakhir jika
        Selanjutnya
    membasahi:
    Fungsi Akhir
    
    P.Boothroyd
    sumber
    1

    Solusinya adalah dengan menggunakan properti khusus yang Anda dapat dengan mudah "Pergi Ke" (tidak perlu mengarungi slide).

    Dari http://msdn.itags.org/powerpoint/4426/ :

    1. Pilih bentuk atau teks yang ingin Anda atur bookmark.
    2. Pilih File | Properti ... dan aktifkan tab Kustom.
    3. Ketikkan nama untuk bookmark.
    4. Centang 'Tautan ke konten'. Nilai yang tercantum dalam kotak dropdown yang berdekatan ketika Anda mencentang 'Tautan ke konten' adalah referensi ke pilihan Anda.
    5. Klik Tambah.
    6. Klik OK untuk menutup dialog Properti.

    Sekarang Anda telah membuat bookmark, Anda dapat melompat ke sana sebagai berikut:
    1. Pilih Edit | Properti Goto ...
    2. Klik nama Properti dari dialog (ini adalah nama yang Anda berikan ke bookmark).
    3. Klik Pergi ke.

    Dialog "Pergi Ke" menyajikan daftar bookmark yang dapat Anda klik dua kali, dan pergi ke kotak teks favorit Anda, siap untuk diedit / ditempelkan ke.

    lalu pemburu
    sumber
    1

    Cara termudah untuk melakukan ini di Powerpoint (setidaknya untuk nilai yang akan muncul di setiap slide) adalah dengan mengedit master slide. Letakkan nama penulis di sana.

    (Alasan yang memungkinkan Word memungkinkan Anda, dan tidak ada yang lain, adalah bahwa berbagai tim di Microsoft jarang berbicara satu sama lain ...)

    Tor Iver Wilhelmsen
    sumber
    1
    Lihat paragraf kedua dalam pertanyaan saya: '... bahkan jika Anda menggunakan halaman master yang berbeda ...'
    Rabarberski
    0

    Pembaruan untuk kode pegangan dengan ppt 2019: Saya mengubah rutin untuk-selanjutnya sedikit, penyebabnya adalah lebih mudah bagi pengguna front-end untuk mengubah "alternativetext" dengan tombol kanan mouse:

        For Each ShapeObj In processPage.Shapes
             If Left(ShapeObj.AlternativeText, 1) = "[" Then
            'If Left(ShapeObj.Title, 1) = "[" Then
                Dim sStart, sEnd As Integer
                ' extract property from between square brackets
                sStart = 2
                'sEnd = InStr(2, ShapeObj.Title, "]")
                sEnd = InStr(2, ShapeObj.AlternativeText, "]")
                'propname = Trim(Mid(ShapeObj.Title, sStart, sEnd - 2))
                propname = Trim(Mid(ShapeObj.AlternativeText, sStart, sEnd - 2))
                    ShapeObj.TextFrame.TextRange.Text = getProperty(propname, ShapeObj.TextFrame.TextRange.Text)
    
            End If
        Next ' obj
    
    Patric Tilge
    sumber