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


42

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

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

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


(十分な担当者がいるにもかかわらず)回答を追加できないようです。Macユーザー向け:macscripter.net/viewtopic.php?id=38622は、多くの用途に合わせて変更できる素晴らしいアップルスクリプトを提供します。
エティエンヌローデカリー

ここでは、上記のAppleScriptの要旨は次のとおりです。 gist.github.com/4440395
エティエンヌ低Décarie

回答:


34

回答がすでに受け入れられていることは知っていますが(動作し、よく書かれているので+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校正言語の設定

仕事完了。

同様に、すべてを選択した状態で、フォント、色などのその他のものを変更できます。もちろん、多くの場合、これはスライドマスターを変更することでより適切に行われますが、基礎となるマスターから逸脱し、一貫性を保つためにリセットが必要です。個々のスライドをマスタースタイルにリセットすることもできますが、これによりプレースホルダーも移動する場合があり、状況によっては望ましくない場合があります。


簡単なメモ:おそらく次の文を太字にして、解決策がすぐに明確になるようにします。アウトラインビュー」
-Rabarberski

2
ありがとう、AdamV、素晴らしい答えです!ただし、この方法の問題は、スライドへのテキストボックスの追加方法によっては、アウトラインビューに表示されない場合があることです。私が修正しなければならなかったプレゼンテーションのほとんどすべてのオブジェクトで、これはほとんど当てはまりました。
レオナルド

はい、多くの独立したテキストボックスを追加する場合は、投稿された元のマクロなどの方法を使用して選択する必要があります。
AdamV

私にとって、これはPowerPoint 2010の既存のテキストでのみ機能しました。新しく追加されたテキストについては、特定の場合でも言語が変更されます。
ピーター

これは、これを扱う最も断然きれいな方法です。2013バージョンでも動作します。
GoTTimw

18

このスレッドには、私のために働いた答えが含まれています。

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

  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を選択して、「実行」をクリックします)。

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


1
このコードはShape、グループ内のに影響しません。より一般的なコードは、superuser.com
a / 1119420/245595に

3

手作業で行ったり、1回限りのマクロを使用したプレゼンテーションを何度も行った後、ようやく壊れて適切なPowerPointアドインになりました。

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

それは世話をします:

  • デフォルト言語の設定
  • テキストフレームを持つすべての図形
  • グループ化された形状のテキストフレーム(可能な限り)
  • 表内のテキスト
  • スライド/ノート/配付資料の内容

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


1

状況に応じて2つのオプションがあります。


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

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

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


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

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

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

これがお役に立てば幸いです。


ご回答有難うございます!ただし、これらの状況ではありませんでした。起こることは、スペルチェックのためにすべてのテキストボックスを異なる言語に設定できることであり、この特定のシナリオでは、すべての要素の言語が間違っていました。システム(およびオフィスのインストール)のデフォルト言語は英語です。
レオナルド

0

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

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


0

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.