パワーポイントのすべてのスライドのプルーフィング言語を一度に変更するには?
パワーポイントのすべてのスライドのプルーフィング言語を変更したいと思っています。言語設定メニューから言語を設定してみましたが、新しいパワーポイントでしか変更できません。
パワーポイントのすべてのスライドのプルーフィング言語を変更したいと思っています。言語設定メニューから言語を設定してみましたが、新しいパワーポイントでしか変更できません。
簡単に全体 PowerPointの言語を変更するには、表示タブを開き、アウトラインビューを選択します。
今すぐ押して
私のために - PowerPoint restartが必要でした。おそらく、私も変更したので、編集言語 :
Powerpoint 2010**を使用して、[アウトライン]メニューを開いてみました。
既存の解答は、アウトラインに存在するテキストに対して機能します。残念ながら私の場合、これは図や表などを含むテキストのかなりの部分をカバーしていませんでした。
このマクロは私のために問題を解決してくれました :
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 "は、任意の言語で置き換えることができます。言語の完全なリストは この記事
(元のマクロを投稿してくれた Ganesh Kumar 氏に謝意を表します ここ . 私は、形状グループ化の第一レベルのサポートを追加しました。さらに改良するために、他のグループを含むグループを探すためにマクロを再帰的にすることができます。)
私は Inigoさんの回答 を改良して、すべての項目を希望の言語に変更する再帰的なバージョンを提供しました。
このバージョンでは、グループタイプである各図形を再帰的に調査します。いくつかの実験では、msoGroup
とmsoSmartArt
がグループタイプであることが示唆されています - テキストオブジェクトを保持できる他のタイプの図形を見つけたら、遠慮なくそのリストに追加してください。
Inigo, Duncan, Maria, DomDevの答えに基づいて、図形、テーブル、グループ、SmartArt、現在と未来に対応しています:
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
Duncanのバージョンは、テーブル以外のすべてのものに対応しています。テーブルでも動作しそうな別のコードを見つけました。 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
あなたが気づくだろう場合は、言語は自動的にあなたが新しいテキスト(これは非常に迷惑です)を入力するために開始するたびに戻って変更されます:
Windows Taskbar
で(はい、実際にはPowerPointではありません)、Language bar
が表示されているかどうかを確認し、Control Panel > Region and Language > Keyboards and Languages
に移動しない場合。Change keybords...
をクリックし、Language bar
タブに切り替え、Docked in the taskbar
オプションをチェックします。これは、Win7からですので、他のバージョンでは少し異なるかもしれません)。 Language bar
で、言語コードをクリックして、EN(あなたが現在、PowerPointで英語を使用したい場合)に切り替えます。今から、PowerPointのすべての新しいテキストは、選択された言語になります:-) 私は自分自身のために2014年に戻ってアドインを作ったが、それはまだPowerPoint 2016で正常に動作します。 https://github.com/wobba/officeaddin/releases/tag/v1.0.1
使用している言語をスキャンして、ループオーバーして一度に変更できるようにしています。