web-dev-qa-db-ja.com

PowerPointプレゼンテーションのスペルチェック言語を変更する

私は多数のテキストボックスがあるそれぞれのスライドを含むPowerPointプレゼンテーションを受け取りました。プレゼンテーションは英語で書かれていますが、スペルチェックの言語はカナダフランス語に設定されています。言語を英語に変更しようとしていますが、すべてのスライドを選択して[言語]ダイアログボックスで新しい要素を選択しても、テキストボックスの言語は変わりません。だから私はスライドでテキストボックスを選択し、それから言語を個別に変更することでスライドさせなければなりません。

これを行うより良い方法はありますか?

私がインストールしたPowerPointのバージョンは2002 SP3です。

40
Leonardo

このスレッド は私のために働いた答えを含んでいます。

私が従った手順は次のとおりです。

  1. 新しいマクロを作成します。
    [...] 1.1。ツール、マクロ、Visual Basic Editorの順にクリックします。
    [...] 1.2。 [挿入]、[モジュール]の順に選択して、新しい空のモジュールを挿入します。
  2. このコードを右側のパネルに貼り付けて、マクロを保存します。

    Option Explicit  
    Public Sub ChangeSpellCheckingLanguage()  
        Dim j As Integer, k As Integer, scount As Integer, fcount 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 = msoLanguageIDEnglishAUS
                End If
            Next k
        Next j
    End Sub
    

    msoLanguageIDEnglishAUSは任意の言語に置き換えることができます。言語の全リスト はここにあります

  3. マクロを実行します(エディタ内でF5キーを押すか、[ツール]、[マクロ]、[マクロ]、[ChangeSpellCheckingLanguage]を選択して[実行]をクリックします)。

それ以降は、プレゼンテーション内のすべてのテキスト要素に新しいスペル言語が使用されます。

17
Leonardo

私は答えがすでに受け入れられていることを知っていますが(それはうまくいくのでよく書かれているので+1しています)、マクロを作成、保存、使用するという考えはあまりにも怖いかもしれません。これを達成するのを難しくする場所)。したがって、もっと簡単な解決策は、これを行うために通常の組み込み機能を使用することです。 トリックは、スライド自体ではなく、すべてのスライド上のすべてのオブジェクトを一度に選択できるようにすることです。これは、アウトラインビューで簡単に実現できます(残念ながら未使用の機能ですが、再編成に最適です。スライドデッキ、チャンク全体の昇格と降格(例:弾丸>新しいスライド、またはその逆).

私はPowerPoint 2002( "XP")を持っていないので、あなたが2000年か2003年のどちらかの指示に従う必要があるかどうかわからないので、ここで両方をカバーします。

  • PP 2000の場合:アウトラインビューに移動します。これは、画面左下の左から2番目のアイコンです(インデントのある行のように見えます。
  • PP 2003以降: "通常"ビュー(3ペインレイアウト)に移動し、スライドナビゲータの上部にあるを選択します。 「スライド」ではなく「アウトライン」

古いバージョンでは、アウトラインツールバーが表示されていることを確認してください(View > Toolbars > Outlining)をクリックして Expand all ボタン(それ以降のバージョンでは、右クリックでこれを確認できます)。

  • Ctrl-A すべて選択します。
  • Tools > Language >設定する言語を選択してください。
  • (PowerPoint 2013から) REVIEW > Language >校正言語の設定

仕事は終わった。

同様に、フォント、色など、他のものも変更できます。もちろん、スライドマスターを変更することでこれを行うことができますが、多くの編集者がいるプレゼンテーションには、 'ハード'フォーマットセットがたくさんあります。基礎となるマスターから逸脱し、一貫性を保つために再設定が必要です。個々のスライドをマスタースタイルにリセットすることもできますが、プレースホルダも移動する可能性があります。これは、状況によっては望ましくない場合があります。

33
AdamV

私が手作業でそれを行ったか、または1回限りのマクロを使用した多くのプレゼンテーションの後、私はついにそれを壊して適切なPowerPointアドインにしました。

私のWebサイトにアップロードしました: PowerPoint LanguageFixer

それは世話をします:

  • デフォルトの言語を設定する
  • テキスト枠付きのすべての図形
  • (可能な限り)グループ化された図形のテキスト枠
  • テーブル内のテキスト
  • スライド/ノート/配布資料のマスターのもの

テキストボックスの1つを希望の言語に設定し、それを選択してボタンをクリックするだけです。

3
Jan Schejbal

状況に応じて2つの選択肢があります。


状況1:Officeの元のコピーが、カナダのフランス語ベースのインストールメディアからインストールされた。

デフォルトの言語を英語に設定できますが、コア機能はインストールメディアの母国語を使用します。

唯一の解決策は、カナダのフランス語版をアンインストールし、英語ベースのインストールメディアからインストールするか、プレゼンテーション全体を新しいドキュメントにコピーアンドペーストして再フォーマットすることです。


状況2:すべてが英語のようですが、限られた状況では外国語が表示されます。

この状況では、Office 2002の修復手順は次のとおりです。

  1. スタートメニューをクリック
  2. プログラムを指す
  3. Microsoft Officeツールを指す
  4. Microsoft Office XP言語設定をクリックします。
  5. [有効な言語]タブをクリックします。
  6. [既定のバージョンのMicrosoft Office]ボックスに移動します。
  7. 希望の言語を選択してください
  8. OKをクリックしてください。どのような変更が行われるのかを知らせるメッセージが表示されます。
  9. 続行をクリック

これが役に立つことを願っています。

1
pjemmert

私はドイツのPowerPointで作られたプレゼンテーションと手動で英語に翻訳されているのと同じ問題を抱えていました。問題は、言語設定が本質的に各テキストボックス要素に独自に適用されるフォーマットであるということです。

私はどんな便利な解決策も知りません - 私はミスマッチで生きるか、各スライドの個々のテキストボックスの言語の「フォーマット」を手動で変更しなければなりませんでした。面白くないので、たいてい私は一緒に住んでいます。

Leonardo によって投稿されたコードは単純で一般的に効果的ですが、グループ内のShapesには影響しません。より一般的なコードでもその場合に対処するために再帰を使用します(Leonardoによるコードと同じスレッドにある here からわずかに変更されています)。

Private Function ChangeLangOfAllText_caller()
    'ChangeLangOfAllText (msoLanguageIDEnglishUS)
    ChangeLangOfAllText (msoLanguageIDSpanishArgentina)
End Function

Private Function ChangeLangOfAllText(ByVal LangID As Long)
    Dim MySlide As Slide
    Dim MyShape As Shape
    Dim MyD As Design
    Dim MyHeaderFooter As HeaderFooter
    Dim i, nbs As Integer
    ''''' First deal with the master slides
    For Each MyD In ActivePresentation.Designs
        For Each MyShape In MyD.SlideMaster.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MyD
    ''''' Now deal with the slides
    ' Enable this for debugging
    'Debug.Print "File " & ActivePresentation.Name & _
      ": working with " & ActivePresentation.Slides.Count & " slides"
    For Each MySlide In ActivePresentation.Slides
        ' Enable this for debugging
        'Debug.Print " Slide index " & MySlide.SlideIndex & ", Slide number " & MySlide.SlideNumber & _
          ": working with " & MySlide.Shapes.Count & " shapes"
        For Each MyShape In MySlide.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the Notes
        For Each MyShape In MySlide.NotesPage.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
        ''''' Now deal with the master ' doesn't appear to work, have to try something else
        For Each MyShape In MySlide.Master.Shapes
            ProcessShapes MyShape, LangID
        Next MyShape
    Next MySlide
End Function

Private Function ProcessShapes(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If ((MyShape.Type = msoGroup) Or (MyShape.Type = msoTable)) Then
        On Error Resume Next
        For i = 1 To MyShape.GroupItems.Count
            ''' The trick is to recurse!
            ProcessShapes MyShape.GroupItems.Item(i), LangID
        Next i
    Else
        ChangeLang MyShape, LangID
    End If
End Function

Private Function ChangeLang(MyShape As Shape, ByVal LangID As Long)
    Dim i As Integer
    If (MyShape.HasTextFrame) Then
        ' Enable this for debugging
        'Debug.Print " Shape " & MyShape.ZOrderPosition & ", type: " & MyShape.Type & _
          ", has text frame: " & MyShape.HasTextFrame & ", has text: " & MyShape.TextFrame.HasText & _
          ", alt. text: " & MyShape.AlternativeText
        MyShape.TextFrame.TextRange.LanguageID = LangID
    End If
End Function
0
sancho.s