2012-06-04 10:01:31 +0000 2012-06-04 10:01:31 +0000
166
166

Jak mogę zmienić język wszystkich slajdów w Powerpoincie na raz?

Chcę zmienić język proofingu wszystkich slajdów w Powerpoincie. Próbowałem ustawić język poprzez menu Preferencje językowe, ale to tylko zmienia język dla nowych Powerpointów.

Odpowiedzi (8)

178
178
178
2013-03-17 17:29:41 +0000

Aby łatwo zmienić język entire PowerPoint'a, otwórz zakładkę View i wybierz Outline view.

Teraz naciśnij

  • Ctrl+A, aby wybrać wszystkie.
  • NarzędziaJęzyk →Wybierz język do ustawienia.

Podobnie, gdy masz już wszystko wybrane, możesz zmieniać inne rzeczy, takie jak czcionki, kolory itp. Chociaż oczywiście w wielu przypadkach lepiej jest to zrobić zmieniając slide-master, prezentacja, która miała wiele edytorów może mieć wiele “twardych” zestawów formatowania, które odbiegają od podstawowego master'a i muszą być zresetowane, aby były spójne. Można również zresetować poszczególne slajdy do stylu master, ale może to spowodować przesunięcie się uchwytów, co może być niepożądane w niektórych sytuacjach.

PowerPoint 2013

  • ViewOutline → wybierz wszystkie slajdy (w lewym menu) poprzez Ctrl+A.
  • Wyświetl →Język** →Wybierz swój język do ustawienia.

Jak dla mnie - PowerPoint restart był potrzebny. Prawdopodobnie dlatego, że ja również zmieniłem Editing Language :

  • ReviewLanguage →Set Proofing Language…** → Language Preferences →Wybierz Editing Languages**.
34
34
34
2012-06-04 10:01:32 +0000

Używając Powerpoint 2010 otworzyłem menu Zarys -

Zaznaczyłem cały tekst (Ctrl+A), otworzyłem menu językowe i ustawiłem język proofingu

I to zadziałało!

Menu językowe znajduje się na zakładce Taśma recenzji (po zakładce Pokaz slajdów i nie jest widoczne na zrzucie ekranu).

24
24
24
2013-08-09 08:11:56 +0000

Istniejące odpowiedzi działają na tekst, który jest obecny w zarysie. Niestety w moim przypadku nie objęło to znaczącej części tekstu, w tym rycin, tabel itp.

To makro rozwiązało dla mnie problem :

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

Użyty w powyższym makrze “msoLanguageIDEnglishUS” może być zastąpiony przez dowolny język. Pełna lista języków znajduje się w ten artykuł

(Uznanie dla Ganesha Kumara, który zamieścił oryginalne makro tutaj . Dodałem wsparcie dla pierwszego poziomu grupowania kształtów. Aby jeszcze bardziej ją ulepszyć, makro może być rekurencyjne w poszukiwaniu grup, które zawierają inne grupy, itp.)

22
22
22
2013-11-25 09:52:03 +0000

Poprawiłem na odpowiedź Inigo aby dostarczyć rekurencyjną wersję, która zmienia wszystkie elementy na pożądany język.

Ta wersja będzie rekurencyjnie badać każdy kształt, który jest typem grupy. Niektóre eksperymenty sugerują, że msoGroup i msoSmartArt są typami grupowymi - możesz je dodać do tej listy, jeśli znajdziesz inne typy kształtów, które mogą zawierać obiekty tekstowe.

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
10
10
10
2016-07-09 09:41:22 +0000

Bazując na odpowiedziach Inigo, Duncana, Marii i DomDeva, to działa dla kształtów, tabel, grup, SmartArt, teraz i w przyszłości:

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
7
7
7
2014-05-22 13:36:52 +0000

Wersja Duncana działa dobrze we wszystkim oprócz stołów. Znalazłem inny kod, który zdaje się również działać z tabelami: 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
6
6
6
2016-07-04 12:52:11 +0000

Oprócz odpowiedzi udzielonej przez Mastergalen oraz komentarzy dotyczących nowo wpisywanego tekstu:

Jeśli zauważysz, że język ten będzie się automatycznie zmieniał przy każdym rozpoczęciu wpisywania nowego tekstu (co jest bardzo irytujące), musisz zmienić obecny język domyślny dla PowerPointa:

  • upewnij się, że okno PowerPointa jest aktywnym oknem
  • w Windows Taskbar (tak, właściwie nie w PowerPoincie), sprawdź czy Language bar jest widoczne,
  • jeśli nie przejdź do Control Panel > Region and Language > Keyboards and Languages. Kliknij na Change keybords..., przełącz na zakładkę Language bar i zaznacz opcję Docked in the taskbar. (to jest z Win7, więc może być nieco inaczej w innych wersjach).
  • teraz kluczowa akcja - w zakładce Language bar na pasku zadań, kliknij na kod języka i przełącz na EN (jeśli chcesz obecnie używać angielskiego w PowerPoint). Od teraz cały nowy tekst w programie PowerPoint będzie w wybranym języku :-)
  • jeśli chcesz pisać w swoim oryginalnym języku, po prostu zmień go z powrotem.
3
3
3
2017-10-20 11:42:30 +0000

Zrobiłem dla siebie dodatek w 2014 roku, który nadal działa dobrze w PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1

Skanuje on w poszukiwaniu używanych języków i pozwala na zmianę wszystkich jednocześnie, zapętlając się.