Я не могу найти способ изменения с помощью скрипта VBA языка в объектах SmartArt в Powerpoint 2013. Я видел PowerPoint 2007 - Set language on tables, charts etc that contains text, но он не работает для объектов SmartArt. Любая идея, как я мог это сделать? Большое спасибо.VBA Powerpoint 2013: изменить язык презентации, включая объекты SmartArt
0
A
ответ
0
Это code я, наконец, использовать для изменения языка, включая SmartArts:
Sub SetLangUS()
Call changeLanguage(ActivePresentation, "US")
End Sub
Sub SetLangDE()
Call changeLanguage(ActivePresentation, "DE")
End Sub
Private Function changeLanguage(oPres As Presentation, langStr As String)
' Reference http://stackoverflow.com/questions/4735765/powerpoint-2007-set-language-on-tables-charts-etc-that-contains-text
' https://support.microsoft.com/en-us/kb/245468
On Error Resume Next
Dim r, c As Integer
Dim oSlide As Slide
Dim oNode As SmartArtNode
Dim oShape, oNodeShape As Shape
Dim lang As String
'lang = "Norwegian"
'Determine language selected
If langStr = "US" Then
lang = msoLanguageIDEnglishUS
ElseIf langStr = "UK" Then
lang = msoLanguageIDEnglishUK
ElseIf langStr = "DE" Then
lang = msoLanguageIDGerman
ElseIf langStr = "FR" Then
lang = msoLanguageIDFrench
End If
'Set default language in application
oPres.DefaultLanguageID = lang
'Set language in each textbox in each slide
For Each oSlide In oPres.Slides
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
ElseIf oShape.HasSmartArt Then
For Each oNode In oShape.SmartArt.AllNodes
oNode.TextFrame2.TextRange.LanguageID = lang
Next
Else
oShape.TextFrame.TextRange.LanguageID = lang
For c = 0 To oShape.GroupItems.Count - 1
oShape.GroupItems(c).TextFrame.TextRange.LanguageID = lang
Next
End If
Next
Next
' Update Masters
For Each oShape In oPres.SlideMaster.Shapes
oShape.TextFrame.TextRange.LanguageID = lang
Next
For Each oShape In oPres.TitleMaster.Shapes
oShape.TextFrame.TextRange.LanguageID = lang
Next
For Each oShape In oPres.NotesMaster.Shapes
oShape.TextFrame.TextRange.LanguageID = lang
Next
' MsgBox
MsgBox "Presentation Language was changed to " & langStr & ".", vbOKOnly, "SetLanguage"
End Function
1
Вы должны получить доступ к Узлов (или GroupItems) объекта SmartArt, как это:
Sub SwitchSmartArtLanguage(oSA As SmartArt)
Dim oNode As SmartArtNode
With oSA
For Each oNode In .Nodes
oNode.TextFrame2.TextRange.LanguageID = msoLanguageIDEnglishUK
Next
End With
End Sub
Смежные вопросы
- 1. Формат каждой таблицы в презентации PowerPoint 2013
- 2. Извлечь текст из SmartArt в презентации OpenXml
- 3. VBA ungroup Shape (SmartArt)
- 4. Регулировка размера узлов SmartArt с помощью VBA для PowerPoint
- 5. Создание презентации PowerPoint с VBA и Excel
- 6. Чтение Powerpoint SmartArt в Java
- 7. Powerpoint VBA - Изменить цветовую схему
- 8. Как узнать язык powerpoint с vba
- 9. Изменить размер шрифта/Пункт Spacing/Изменить слайд VBA Powerpoint 2013
- 10. VBA - Powerpoint 2013 - Синтаксис ActivePresentation.CreateVideo
- 11. Не удается развернуть форму PowerPoint SmartArt
- 12. VBA Powerpoint Как узнать, какая форма нажата во время презентации
- 13. Как улавливать диалог вставки smartart в powerpoint
- 14. Изменить направление текста по умолчанию в презентации PowerPoint с помощью VBA
- 15. Powerpoint VBA цикл через все презентации в папке
- 16. Доступ к формам SmartArt, когда SmartArt находится внутри Placeholder (PowerPoint 2007)
- 17. VBA для изменения PowerPoint 2003 Презентации - Active not new
- 18. Выравнивание текста в VBA PowerPoint 2013
- 19. Powerpoint 2013 vba create Equation/Mathzone
- 20. Извлечение комментариев из презентации PowerPoint с использованием VBA
- 21. DELETE OLD CHART в презентации PowerPoint от VBA EXCEL MACRO
- 22. Как получить обработчик открытой презентации PowerPoint в Excel VBA
- 23. Как вставить фигуру на страницу заметок презентации Powerpoint в VBA?
- 24. VBA не работает при открытии презентации PowerPoint в Windows 7
- 25. C# - Показать презентации PowerPoint непрерывно
- 26. Получение текущего масштабирования презентации PowerPoint
- 27. набор LanguageID из Powerpoint презентации
- 28. Прерывание программно созданных презентаций PowerPoint PowerPoint 2013
- 29. Удаление названных объектов в презентации Powerpoint
- 30. Ошибка при добавлении программно настраиваемой формы smartart в PowerPoint
Как-то это не работает. Как вы пришли в TextFrame2 вместо TextFrame для обычных фигур? Нужно ли мне проходить через узлы? Я отправлю свой код позже. –
Странно. Он работал в моей тестовой палубе. Я использую TextFrame2 (и TextRange2 и различные другие API V2), поскольку они добавляют больше свойств объектам с Office 2007, и поскольку вы упомянули, что используете 2013 год, имеет смысл использовать новейший API. Да, вам нужно пройти через узлы в соответствии с приведенным выше примером. –
Ваш код заменяет только корневые узлы, а не дочерние узлы ниже первого. Замена для каждого входа oNode .Nodes для каждого входа oNode In .AllNodes. :-) –