Vreau pentru a schimba limba de verificare de toate slide-uri în Powerpoint. Am'am incercat setarea limbii, prin Limba de meniu Preferințe, însă acest lucru se schimbă doar pentru noi prizele.
Pentru a schimba limba de tot PowerPoint cu ușurință, deschide Vezi tab-ul și selectați Contur vezi.
Acum, apăsați
De asemenea, în timp ce tu ai totul selectate puteți schimba alte lucruri cum ar fi fonturi, culori, etc. Deși, desigur, în multe cazuri acest lucru este mai bine realizat prin schimbarea slide master, o prezentare care a avut mai multe editorii pot avea o mulțime de 'greu' formatarea set care se abate de la bază master și are nevoie de resetare pentru a fi în concordanță. Puteți reseta, de asemenea, slide-uri individuale la master stil, dar acest lucru poate duce la substituenți de mișcare la fel de bine, care poate fi de dorit în unele situații.
Ca pentru mine - PowerPoint * reporniți a fost nevoie. Probabil pentru că am făcut, de asemenea, s-a schimbat Limba de Editare**:
Folosind Powerpoint 2010 am deschis Conturul meniu -
Selectat tot textul (Ctrl+A), deschis meniul limba și seta limba de verificare
Și ea a lucrat!
Limba meniu este situat pe Revizuirea panglică tab (după diaporamă și nu este vizibil pe imaginea).
Existente răspunsuri de lucru pentru text, care este prezent în schiță. Din păcate, în cazul meu acest lucru nu't a acoperi o parte semnificativă din text, inclusiv figuri, tabele, etc.
Acest macro rezolvat problema pentru mine :
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
"msoLanguageIDEnglishUS", care este folosit în cele de mai sus macro poate fi înlocuit cu orice limba dorită. Lista completă de limbi pot fi găsite în acest articol
(Credit merge la Ganesh Kumar, care a postat original macro aici. Am adăugat suport pentru primul nivel de forma de grupare. Pentru a îmbunătăți în continuare macro pot fi făcute recursiv pentru a căuta grupuri care conțin alte grupuri, etc.)
Am îmbunătățit Inigo's a răspunde pentru a oferi o versiune recursiv care schimbă toate elementele pentru limba dorită.
Această versiune va recursiv investiga fiecare formă, care este un tip de grup. Unele experimente sugerează că msoGroup " și " msoSmartArt
sunt tipuri de grupuri - simțiți-vă liber pentru a adăuga la această listă, dacă veți găsi alte tipuri de forme pe care o poate deține obiecte de tip text.
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
Bazat pe Inigo, Duncan, Maria și DomDev's răspunsuri, acest lucru funcționează pentru forme, tabele, grupuri, SmartArt, acum și în viitor:
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
Versiunea de Duncan funcționează bine pentru tot, dar mese. Am găsit un alt cod care pare să funcționeze, de asemenea, cu tabele: https://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text
Publice Sub schimbărilelimbă() Eroare Cv-ul Următor Dim gi Ca GroupShapes '<-acest lucru a fost adăugat. folosit de mai jos 'lang = "engleză" lang = "norvegiană" 'a Determina limba selectată Dacă lang = "engleză" Atunci lang = msoLanguageIDEnglishUK ElseIf lang = "norvegiană" Atunci lang = msoLanguageIDNorwegianBokmol Sfârșit Dacă 'Seta limba implicită în aplicare ActivePresentation.DefaultLanguageID = lang
'Setați limba în fiecare textbox în fiecare diapozitiv Pentru Fiecare oSlide În ActivePresentation.Slide-uri Dim oShape Ca Forma Pentru Fiecare oShape În oSlide.Forme 'Verificați mai întâi dacă este o masă Dacă oShape.HasTable Apoi Pentru r = 1 La oShape.Masă.Rânduri.Conta Pentru c = 1 Pentru a oShape.Masă.Coloane.Conta oShape.Masă.Celula(r, c).Forma.TextFrame.TextRange.LanguageID = lang Următor Următor Altceva Set gi = oShape.GroupItems 'Verificați dacă acesta este un grup de forme Dacă Nu gi Este Nimic de Atunci Dacă oShape.GroupItems.Conta > 0 Atunci Pentru i = 0 La oShape.GroupItems.Count - 1 oShape.GroupItems(i).TextFrame.TextRange.LanguageID = lang Următor Sfârșit Dacă 'l's nici una din cele de mai sus, l's doar o formă simplă, de a schimba limba de IDENTITATE Altceva oShape.TextFrame.TextRange.LanguageID = lang Sfârșit Dacă Sfârșit Dacă Următor Next End Sub
În plus față de răspunsul dat de Mastergalen și la adresa de comentarii cu privire la noul tip de text:
Dacă veți observa, că limba se va schimba automat ori de câte ori începeți să tastați textul nou (ceea ce este foarte enervant), va trebui să modificați curent limba implicită pentru PowerPoint:
(da, de fapt, nu in PowerPoint), verificați dacă bara lingvistică
este vizibil, Schimba keybords...
, a comuta la Limba bara de tab-și verifica Andocat în taskbar` opțiune. (asta e de la Win7, deci ar putea fi un pic diferit în alte versiuni).Am făcut un add-in în 2014 pentru mine, care încă mai funcționează bine în PowerPoint 2016. https://github.com/wobba/officeaddin/releases/tag/v1.0.1
Acesta scanează pentru limbile utilizate, și vă permite să vă schimbați toate dintr-o dată, looping-a terminat.