Ubah bahasa pemeriksa ejaan pada presentasi PowerPoint

42

Saya menerima presentasi PowerPoint dengan puluhan slide, masing-masing dengan sejumlah kotak teks. Meskipun presentasinya ditulis dalam bahasa Inggris, bahasa untuk pemeriksaan ejaan diatur ke Kanada Prancis. Saya mencoba mengubah bahasa ke bahasa Inggris, tetapi bahkan jika saya memilih semua slide dan memilih elemen baru pada kotak dialog Bahasa, bahasa kotak teks tetap sama. Jadi saya harus pergi slide dengan slide memilih kotak teks dan kemudian mengubah bahasa secara individual.

Apakah ada cara yang lebih baik untuk melakukan ini?

Versi PowerPoint yang saya instal adalah 2002 SP3.

Leonardo
sumber
Tampaknya tidak dapat menambahkan jawaban (walaupun memiliki perwakilan yang cukup). Untuk pengguna mac di luar sana: macscripter.net/viewtopic.php?id=38622 menyediakan skrip apel yang luar biasa yang dapat dimodifikasi untuk banyak penggunaan.
Etienne Low-Décarie
Berikut ini adalah inti dari applescript yang
Etienne Low-Décarie

Jawaban:

34

Saya tahu jawaban sudah diterima (yang saya berikan +1 sejak berfungsi dan ditulis dengan baik), tetapi bagi sebagian orang gagasan membuat, menyimpan, menggunakan makro mungkin terlalu menakutkan (atau mereka mungkin memiliki pengaturan keamanan di tempat yang membuat ini sulit untuk dicapai). Jadi solusi yang lebih mudah adalah dengan menggunakan fungsi built-in normal untuk melakukan ini. Kuncinya adalah untuk dapat memilih semua objek pada semua slide sekaligus, daripada slide itu sendiri, dan ini mudah dicapai dalam tampilan Outline (sayangnya fitur yang kurang digunakan, tetapi bagus untuk mengatur ulang dek slide, mempromosikan dan menurunkan pangkat potongan utuh, mis. peluru> slide baru atau sebaliknya).

Saya tidak memiliki PowerPoint 2002 ("XP") jadi saya tidak yakin apakah Anda harus mengikuti instruksi untuk 2000 atau untuk 2003 jadi saya membahas keduanya di sini:

  • Dalam PP 2000 : Pergi ke tampilan garis besar, yang merupakan ikon kedua dari kiri di kiri bawah layar (terlihat seperti garis dengan lekukan).
  • Dalam PP 2003 dan seterusnya : Pergi ke tampilan "normal" (tata letak tiga panel) dan di bagian atas navigator slide pilih "garis besar" daripada "slide"

Dalam versi yang lebih tua, pastikan Anda memiliki Garis toolbar terlihat ( View> Toolbars> Outlining) dan klik Expand alltombol (versi membiarkan Anda mendapatkan ini melalui klik kanan).

  • Ctrl-A untuk memilih semua.
  • Tools>> LanguagePilih bahasa Anda untuk ditetapkan.
  • (dari Powerpoint 2013) REVIEW> Language> bahasa Set Proofing

Pekerjaan selesai.

Demikian juga ketika Anda memiliki semua yang dipilih, Anda dapat mengubah hal-hal lain seperti font, warna dll. Meskipun tentu saja dalam banyak kasus ini lebih baik dilakukan dengan mengubah slide master, presentasi yang memiliki banyak editor mungkin memiliki banyak set format 'keras' yang menyimpang dari master yang mendasarinya dan perlu mengatur ulang agar konsisten. Anda juga dapat mengatur ulang slide individual ke gaya master, tetapi ini dapat menyebabkan placeholder bergerak juga, yang mungkin tidak diinginkan dalam beberapa situasi.

AdamV
sumber
Hanya sebuah catatan singkat: mungkin buat kalimat berikut dengan berani, sehingga solusinya segera jelas: 'Triknya adalah untuk dapat memilih semua objek pada semua slide sekaligus, daripada slide itu sendiri, dan ini mudah dicapai dalam tampilan Outline '
Rabarberski
2
Terima kasih AdamV, jawaban yang bagus! Masalah dengan pendekatan ini, bagaimanapun, adalah bahwa tergantung pada bagaimana kotak teks ditambahkan ke slide, mereka mungkin tidak muncul dalam tampilan garis besar. Yang merupakan kasus bagi hampir setiap objek pada presentasi yang harus saya perbaiki.
Leonardo
Ya, saya kira jika orang menambahkan banyak kotak teks independen, ini perlu dipilih menggunakan metode seperti makro asli yang diposting.
AdamV
Bagi saya, ini hanya bekerja pada teks yang ada di PowerPoint 2010. Untuk teks yang baru ditambahkan, bahasanya masih akan berubah dalam kasus-kasus tertentu.
Pieter
Sejauh ini ini adalah cara paling bersih untuk menangani hal ini. Ini berfungsi dalam versi 2013 juga.
GoTTimw
18

Utas ini berisi jawaban yang berfungsi untuk saya.

Langkah-langkah yang saya ikuti adalah:

  1. Buat makro baru:
    1.1. Pergi ke Alat, Makro, Editor Visual Basic.
    1.2. Masukkan modul kosong baru dengan memilih Sisipkan, Modul.
  2. Rekatkan kode ini di panel kanan dan simpan makro:

    Option Explicit  
    Public Sub ChangeSpellCheckingLanguage()  
        Dim j As Integer, k As Integer, scount As Integer, fcount As Integer
        scount = ActivePresentation.Slides.Count
        For j = 1 To scount
            fcount = ActivePresentation.Slides(j).Shapes.Count
            For k = 1 To fcount
                If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishAUS
                End If
            Next k
        Next j
    End Sub
    

    msoLanguageIDEnglishAUSdapat diganti dengan bahasa yang diinginkan Daftar lengkap bahasa dapat ditemukan di sini .

  3. Jalankan makro (dengan menekan F5 dalam editor, atau dengan memilih Tools, Makro, Makro, ChangeSpellCheckingLanguage, dan mengklik Run).

Setelah itu semua elemen teks dalam presentasi akan memiliki bahasa ejaan baru.

Leonardo
sumber
1
Kode ini tidak akan mempengaruhi Shapes dalam grup. Kode yang lebih umum diposting di superuser.com/a/1119420/245595
sancho.s Reinstate Monica
3

Setelah banyak presentasi di mana saya melakukannya dengan tangan atau menggunakan makro satu kali, saya akhirnya mematahkan dan membuatnya menjadi Add-In PowerPoint yang tepat.

Saya telah mengunggahnya ke situs web saya: PowerPoint LanguageFixer

Itu mengurus:

  • mengatur bahasa default
  • semua bentuk dengan bingkai teks
  • bingkai teks dalam bentuk yang dikelompokkan (sejauh mungkin)
  • teks dalam tabel
  • hal-hal di master slide / note / handout

Cukup atur salah satu kotak teks ke bahasa yang Anda inginkan, pilih dan klik tombol.

Jan Schejbal
sumber
1

Berikut adalah dua opsi tergantung pada situasi Anda:


Situasi 1: Salinan Office yang asli dipasang dari media instal berbasis bahasa Kanada Kanada.

Anda akan dapat mengatur bahasa default ke bahasa Inggris, tetapi fungsi inti akan menggunakan bahasa asli media instalasi.

Satu-satunya perbaikan adalah menghapus versi Kanada Prancis, dan menginstal dari media instalasi berbasis bahasa Inggris atau menyalin / menempelkan seluruh presentasi ke dokumen baru dan format ulang.

.


Situasi 2: Segalanya tampak bahasa Inggris, tetapi dalam keadaan terbatas bahasa asing muncul.

Dalam situasi ini, berikut adalah instruksi perbaikan untuk Office 2002:

  1. Klik menu Mulai
  2. Arahkan ke Program
  3. Arahkan ke Microsoft Office Tools
  4. Klik Pengaturan Bahasa Microsoft Office XP.
  5. Klik tab Bahasa yang Diaktifkan.
  6. Pergi ke versi Default dari kotak Microsoft Office
  7. Pilih bahasa yang Anda inginkan
  8. Klik OK. Sebuah pesan akan muncul memberi tahu Anda perubahan apa yang akan dilakukan.
  9. Klik Lanjutkan

Saya harap ini membantu.

pjemmert
sumber
Terima kasih atas jawaban anda! Tapi itu bukan situasi seperti itu. Apa yang terjadi adalah bahwa setiap kotak teks dapat diatur ke bahasa yang berbeda untuk pemeriksaan ejaan, dan dalam skenario khusus ini semua elemen memiliki bahasa yang salah. Bahasa default di sistem (dan di instalasi kantor) adalah bahasa Inggris.
Leonardo
0

Saya memiliki masalah yang sama dengan presentasi yang dibuat dengan PowerPoint Jerman dan diterjemahkan secara manual ke dalam bahasa Inggris. Masalahnya adalah bahwa pengaturan bahasa pada dasarnya adalah format yang diterapkan pada setiap elemen kotak teks sendiri.

Saya tidak mengetahui adanya solusi yang mudah - saya harus hidup dengan ketidakcocokan atau secara manual mengubah bahasa "format" dari setiap kotak teks pada setiap slide. Tidak menyenangkan, jadi kebanyakan saya hidup dengannya.

Torben Gundtofte-Bruun
sumber
0

Kode yang diposting oleh Leonardo sederhana dan umumnya efektif, tetapi tidak akan memengaruhi Shapegrup. Kode yang lebih umum menggunakan rekursi untuk menangani kasus itu juga (sedikit berubah dari sini , yang berada di utas yang sama dengan kode oleh Leonardo):

Private Function ChangeLangOfAllText_caller()
    'ChangeLangOfAllText (msoLanguageIDEnglishUS)
    ChangeLangOfAllText (msoLanguageIDSpanishArgentina)
End Function

Private Function ChangeLangOfAllText(ByVal LangID As Long)
    Dim MySlide As Slide
    Dim MyShape As Shape
    Dim MyD As Design
    Dim MyHeaderFooter As HeaderFooter
    Dim i, nbs As Integer
    ''''' First deal with the master slides
    For Each MyD In ActivePresentation.Designs
        For Each MyShape In MyD.SlideMaster.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MyD
    ''''' Now deal with the slides
    ' Enable this for debugging
    'Debug.Print "File " & ActivePresentation.Name & _
      ": working with " & ActivePresentation.Slides.Count & " slides"
    For Each MySlide In ActivePresentation.Slides
        ' Enable this for debugging
        'Debug.Print " Slide index " & MySlide.SlideIndex & ", Slide number " & MySlide.SlideNumber & _
          ": working with " & MySlide.Shapes.Count & " shapes"
        For Each MyShape In MySlide.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the Notes
        For Each MyShape In MySlide.NotesPage.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the master ' doesn't appear to work, have to try something else
        For Each MyShape In MySlide.Master.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MySlide
End Function

Private Function ProcessShapes(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If ((MyShape.Type = msoGroup) Or (MyShape.Type = msoTable)) Then
        On Error Resume Next
        For i = 1 To MyShape.GroupItems.Count
            ''' The trick is to recurse!
            ProcessShapes MyShape.GroupItems.Item(i), LangID
        Next i
    Else
        ChangeLang MyShape, LangID
    End If
End Function

Private Function ChangeLang(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If (MyShape.HasTextFrame) Then
        ' Enable this for debugging
        'Debug.Print " Shape " & MyShape.ZOrderPosition & ", type: " & MyShape.Type & _
          ", has text frame: " & MyShape.HasTextFrame & ", has text: " & MyShape.TextFrame.HasText & _
          ", alt. text: " & MyShape.AlternativeText
        MyShape.TextFrame.TextRange.LanguageID = LangID
    End If
End Function
sancho.s Reinstate Monica
sumber