Tüm Powerpoint slaytlarının dilini bir kerede nasıl değiştiririm?


151

Bu konu oldukça eski olmasına rağmen, Microsoft bildiğim hiçbir çözümü sunmadı. Mac kullanıcıları için başka bir yaklaşım öneririm: sunumunuzu Keynote'ta açın, yazım dilini değiştirin ve muhtemelen tüm sunumunuzu düzenleyin, ardından PowerPoint'e dışa aktarın.



1
Görünüşe göre, PowerPoint'in en yeni sürümü bu açıdan özellikle sorunlu. Tüm metnin dilini A dili ile değiştirdiğim bir metin kutum var. (Varsayılan dil B'dir.) Bu yüzden bu metin kutusuna yazmaya başladığımda, dil otomatik olarak B olarak değişir. dil yardımcı olur (her şeyi denemiş) ama hayır. Şimdi varsayılan dil A, metin kutusundaki tüm diğer metinlerin dili A (ve PP'yi yeniden başlattım), ancak tüm yeni metinler hala B olarak görünüyor. tamamen kapalı?
lebatsnok

Evet, yazım denetimini kapatmanın bir yolu var: support.microsoft.com/en-us/help/937422/… - sorunumu çözdüm!
lebatsnok

Yanıtlar:


165

Tüm PowerPoint'in dilini kolayca değiştirmek için Görünüm sekmesini açın ve Anahat görünümünü seçin .

Şimdi basın

  • Ctrl+ Ahepsini seçmek için.
  • AraçlarDil → Ayarlanacak dili seçin.

Aynı şekilde seçili olan her şeyi seçtiyseniz, yazı tipi, renk vb. Diğer şeyleri de değiştirebilirsiniz. Elbette birçok durumda bu, slayt yöneticisini değiştirerek daha iyi yapılsa da, birçok düzenleyiciye sahip bir sunumda çok sayıda 'zor' biçimlendirme kümesi olabilir. altta yatan ana aygıttan sapmalar ve tutarlı olması için sıfırlama gerekiyor. Tekli slaytları ana stile de sıfırlayabilirsiniz, ancak bu durum yer tutucuların da hareket etmesine neden olabilir, bu bazı durumlarda istenmeyen olabilir.

PowerPoint 2013

  • GörünümAnahat → tüm slaytları (sol menüde) Ctrl+ ile seçin A.
  • Gözden GeçirmeDilYazım Dilini Ayarla ... → Ayarlanacak dili seçin.

Bana gelince - PowerPoint yeniden başlatılması gerekiyordu. Muhtemelen Düzenleme Dilini de değiştirdiğim için :

  • İncelemeDilSeti Prova Dil ...Dil TercihleriDüzenleme Diller seçin .

31
Cevabınız için teşekkürler, ancak dili değiştirdikten sonra, yeni yazılan metin hala önceki dilde (varsayılan). Ayrıca, ana slaytlara giderseniz , slaytı seçin ; fark edersiniz ki, dil çubuğundaki dilin hala varsayılan dil olduğunu ve değiştirilecek menü gri renktedir. Çok uzun zamandır Microsoft tarafından çözülmediği için deliriyorum.
Endrju

1
Korku veren! Mükemmel olmasa da, kesinlikle yardımcı olur. @Endrju ile aynı fikirdeyim, neden bu henüz çözülmedi ?!
Mike,

1
Kayıt için, Office 2013'te Dil menüsü Gözden Geçirme bölmesindedir (Prova Dilini Ayarla)
Maria Ines Parnisari

2
Powerpoint sadece şok edici bir şekilde kötü değil mi? Aslında böyle sorunları olduğunda açık ofisi kullanmayı özlüyorum. Bir videoya kaydetmeyi destekledikleri anda ofise açacağım.
mjaggard

2
Bunun ana sınırlaması, sonsuz bilgeliğine sahip birinin uygun Title + Content mizanpajlarını kullanmak yerine özel metin kutusu oluşturması durumunda bu işe yaramaz.
Lilienthal

34

Powerpoint 2010'u kullanarak Anahat menüsünü açtım -

anahat sekmesi

Tüm metni seçti (Ctrl + A), dil menüsünü açtı ve prova dilimi ayarla

dil seçeneği

Ve işe yaradı!

Dil menüsü, İnceleme şeridi sekmesinde bulunur (Slayt Gösterisi sekmesinden sonra ve ekran görüntüsünde görünmez).


4
Sadece tek bir slayt için çalışıyor
Helge Klein

9
Bu, temel slayt düzenleri için çalışır. Metin kutularının içindeki metnin dilini değiştirmez veya başka şekillerin içine yerleştirilmez.
Duncan Jones

Office 2007'de de çalışıyor.
Alfredo Osorio

Office Mac'te de çalıştım.
Jim McKeeth

23

Varolan cevaplar, anahatta mevcut olan metin için işe yarar. Ne yazık ki benim durumumda bu rakamlar, tablolar vb. Dahil metnin önemli bir bölümünü kapsamıyordu.

Bu makro benim için sorunu çözdü:

 Sub ChangeProofingLanguageToEnglish()
    Dim j, k, m, scount, fcount, gcount 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 = msoLanguageIDEnglishUS
            End If
            If ActivePresentation.Slides(j).Shapes(k).Type = msoGroup Then
                gcount = ActivePresentation.Slides(j).Shapes(k).GroupItems.Count
                For m = 1 To gcount
                    If ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m).HasTextFrame Then
                    ActivePresentation.Slides(j).Shapes(k).GroupItems.Item(m) _
                    .TextFrame.TextRange.LanguageID = msoLanguageIDEnglishUS
            End If
                Next m
            End If
        Next k
    Next j
End Sub

Yukarıdaki makroda kullanılan "msoLanguageIDEnglishUS" istenen herhangi bir dille değiştirilebilir. Dillerin tam listesi bu makalede bulunabilir.

(Kredi burada asıl makroyu yayınlayan Ganesh Kumar'a gidiyor . Birinci seviye gruplandırma için destek ekledim. Daha da iyileştirmek için makro diğer grupları içeren grupları aramak için özyinelemeli olabilir.)


+1 İyi başlangıç. Bu cevaba dayanarak tam tekrarlanan bir versiyon için cevabımı gör .
Duncan Jones

20

Tüm öğeleri istenen dile değiştiren özyinelemeli bir sürüm sağlamak için Inigo'nun cevabını geliştirdim .

Bu sürüm, bir grup türü olan her şekli tekrar tekrar araştırır. Bazı deneyler şunu önermektedir msoGroupve msoSmartArtgrup türleridir - metin nesnelerini tutabilecek diğer şekil türlerini bulursanız o listeye eklemek için çekinmeyin.

Sub ChangeProofingLanguageToEnglish()
    Dim j As Long, k As Long
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDEnglishUK

    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), _
              languageID
        Next k
    Next j
End Sub


Sub ChangeAllSubShapes(targetShape As shape, languageID As MsoLanguageID)
    Dim i As Long

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub

1
OSX'te PowerPoint Compile error: Method or data member not found
16.10'da

10

Inigo, Duncan, Maria ve DomDev'in cevaplarına dayanarak, bu şimdi ve gelecekte şekiller, tablolar, gruplar, SmartArt için çalışıyor:

Sub ChangeProofingLanguageToFrench()
    Dim j, k As Integer
    Dim languageID As MsoLanguageID

    'Set this to your preferred language
    languageID = msoLanguageIDFrench

    'Loop all the slides in the document, and change the language
    For j = 1 To ActivePresentation.Slides.Count
        For k = 1 To ActivePresentation.Slides(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.Slides(j).Shapes(k), languageID
        Next k
    Next j

    'Loop all the master slides, and change the language
    For j = 1 To ActivePresentation.SlideMaster.CustomLayouts.Count
        For k = 1 To ActivePresentation.SlideMaster.CustomLayouts(j).Shapes.Count
            ChangeAllSubShapes ActivePresentation.SlideMaster.CustomLayouts(j).Shapes(k), languageID
        Next k
    Next j

    'Change the default presentation language, so that all new slides respect the new language
    ActivePresentation.DefaultLanguageID = languageID
End Sub

Sub ChangeAllSubShapes(targetShape As Shape, languageID As MsoLanguageID)
    Dim i As Integer, r As Integer, c As Integer

    If targetShape.HasTextFrame Then
        targetShape.TextFrame.TextRange.languageID = languageID
    End If

    If targetShape.HasTable Then
        For r = 1 To targetShape.Table.Rows.Count
            For c = 1 To targetShape.Table.Columns.Count
                targetShape.Table.Cell(r, c).Shape.TextFrame.TextRange.languageID = languageID
            Next
        Next
    End If

    Select Case targetShape.Type
        Case msoGroup, msoSmartArt
            For i = 1 To targetShape.GroupItems.Count
                ChangeAllSubShapes targetShape.GroupItems.Item(i), languageID
            Next i
    End Select
End Sub

OSX'te PowerPoint 16.10 Bu çalıştırırken diğer çözümlere gelince, ben alıyorum: Compile error: Method or data member not found. Herhangi bir önerilen çözüm? Vurgulamak gibi görünüyor .DefaultLanguageID.
Etienne Low-Décarie

@ EtienneLow-Décarie: API, PowerPoint 16'da değişmiş olabilir; Bende yok bu yüzden kontrol edemem, üzgünüm.
tricasse

Windows 7'de Powerpoint 2016'da benim için çalışıyor (tam MS Office sürümü 16.0.11029.20108'dir)
Christopher K.

Mükemmel! Aklıma gelebilecek tek gelişme slayt notaları bölümünün dilini de değiştirmek :)
Marcus Mangelsdorf

7

Duncan sürümü masalar dışında her şey için iyi çalışıyor. Tablolarla da çalışacak gibi görünen başka bir kod buldum: https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text

Public Sub changeLanguage()
    On Error Resume Next
    Dim gi As GroupShapes '<-this was added. used below
    'lang = "English"
    lang = "Norwegian"
    'Determine language selected
    If lang = "English" Then
        lang = msoLanguageIDEnglishUK
    ElseIf lang = "Norwegian" Then
        lang = msoLanguageIDNorwegianBokmol
    End If
    'Set default language in application
    ActivePresentation.DefaultLanguageID = lang

    'Set language in each textbox in each slide
    For Each oSlide In ActivePresentation.Slides
        Dim oShape As Shape
        For Each oShape In oSlide.Shapes
            'Check first if it is a table
            If oShape.HasTable Then
                For r = 1 To oShape.Table.Rows.Count
                    For c = 1 To oShape.Table.Columns.Count
                    oShape.Table.Cell(r, c).Shape.TextFrame.TextRange.LanguageID = lang
                    Next
                Next
            Else
                Set gi = oShape.GroupItems
                'Check if it is a group of shapes
                If Not gi Is Nothing Then
                    If oShape.GroupItems.Count > 0 Then
                        For i = 0 To oShape.GroupItems.Count - 1
                            oShape.GroupItems(i).TextFrame.TextRange.LanguageID = lang
                        Next
                    End If
                'it's none of the above, it's just a simple shape, change the language ID
                Else
                    oShape.TextFrame.TextRange.LanguageID = lang
                End If
            End If
        Next
    Next End Sub

5

Mastergalen tarafından verilen cevaplara ve yeni yazılan metinlerle ilgili yorumların yanı sıra :

Yeni bir metin yazmaya başladığınızda (çok sinir bozucu) bu dilin otomatik olarak geri döneceğini fark ederseniz, PowerPoint için geçerli varsayılan dili değiştirmeniz gerekir:

  • PowerPoint penceresinin etkin bir pencere olduğundan emin olun
  • içinde Windows Taskbar(evet, aslında PowerPoint'te değil) Language bargörünür olup olmadığını kontrol edin ,
    • eğer değilse Control Panel > Region and Language > Keyboards and Languages. Tıklayın Change keybords..., Language barsekmeye geçin ve Docked in the taskbarseçeneği işaretleyin. (bu Win7'dendir, bu nedenle diğer sürümlerde biraz farklı olabilir).
  • şimdi önemli eylem - Language bargörev çubuğundaki dil kodunu tıklayın ve EN'ye geçin (şu anda PowerPoint'te İngilizce'yi kullanmak istiyorsanız). Şu andan itibaren, PowerPoint'teki tüm yeni metinler seçilen dilde olacak :-)
  • orijinal dilinizde yazmak istiyorsanız, onu tekrar değiştirmeniz yeterlidir.

1
Tanrım, neden böyle bir şey yaptılar? Teşekkürler, mükemmel çalıştı.
Thibault D.

1
Kesinlikle! Kabul edilen cevaba da eklenmelidir.
M. Abdelhafid

1
Ancak bu klavye düzenini de değiştiriyor, değil mi? ... İngilizce metin yazmak istiyorum ancak Almanca klavye
Johannes S.

2
@JohannesS. EnGörev çubuğuna sağ tıklayıp Settings..Yüklü diller Almanca (DE) ve İngilizce (En) 'de göreceğinizi seçerseniz, İngilizce'yi genişletirseniz, Keyboardslistelenir, Klavyeler'i genişletin ve tercih ettiğiniz Almanca klavyeyi ekleyin, muhtemelen İngilizce olanı kaldırın Ayrıca. Denemedim ama teoride çalışmalıyım ;-)
Gas

Bekle, bu yüzden farklı bir prova diline sahip olmak istersem klavye dilimi değiştirmem gerekiyor? Bu aptalca.
Matěj Račinský

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.