PowerPoint (全般)

PowerPoint 全般に関する話題を扱うフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : PowerPoint 2013)
フォントの一部の色を一括変更したい
投稿日時: 17/08/02 12:52:52
投稿者: 2365

過去に作成されたPPTファイルが読みづらいので、背景色を変更し読みやすくしようと
したところ、一部の強調文言の色が却って見づらくなってしまいました。
そこでその部分のみ見やすい色に変更したいのですが、いろいろ検索しても良い方法が
見つかりません。
 
スライドは50枚程あって、各スライドに強調文言があるため、1つずつ選択して変更して
いくのも効率的ではないなと思い、一括変更したいのです。
どなたか方法ご存知でしたら教えてください。
どうぞ宜しくお願いいたします。

回答
投稿日時: 17/08/03 05:43:33
投稿者: んなっと

VBAが使える環境なら、
 
Sub ChikannFont()
  Dim myNum As Variant
  Dim oldFnt As Long
  Dim newFnt As Long
  Dim Sld As Slide
  Dim Shp As Shape
  Dim myRow As Row
  Dim myCell As Cell
  Dim n As Long
  With ActiveWindow.Selection
    If .Type <> ppSelectionText Then
      Exit Sub
    Else
      oldFnt = .TextRange.Font.Color
    End If
  End With
  myNum = CVar(InputBox("置換後のフォント" & Chr(13) & _
    "赤:1" & Chr(13) & _
    "青:2" & Chr(13) & _
    "白:3" & Chr(13) & _
    "黒:4" & Chr(13) & _
    "緑:5" & Chr(13) & _
    "黄:6" & Chr(13) & _
    "桃:7" & Chr(13) _
    , "置換後", 1))
  If myNum = "" Then Exit Sub
  If Not IsNumeric(myNum) Then Exit Sub
  Select Case myNum
    Case 1
      newFnt = vbRed
    Case 2
      newFnt = vbBlue
    Case 3
      newFnt = vbWhite
    Case 4
      newFnt = vbBlack
    Case 5
      newFnt = RGB(Red:=0, Green:=153, Blue:=0) '少し違うけどvbGreen
    Case 6
      newFnt = vbYellow
    Case 7
      newFnt = RGB(Red:=255, Green:=51, Blue:=204)
    Case Else
      Exit Sub
  End Select
'図形ループ
  For Each Sld In ActivePresentation.Slides
    For Each Shp In Sld.Shapes
      With Shp
        ' 普通のオブジェクトの場合
        If .HasTextFrame Then
          Hennkann .TextFrame.TextRange, oldFnt, newFnt
        ' 表のオブジェクトの場合
        ElseIf .HasTable Then
          For Each myRow In .Table.Rows
            For Each myCell In myRow.Cells
              Hennkann myCell.Shape.TextFrame.TextRange, oldFnt, newFnt
            Next
          Next
        ' グループオブジェクトの場合
        ElseIf .Type = msoGroup Then
          For n = 1 To .GroupItems.Count
            With .GroupItems(n)
              If .HasTextFrame Then
                Hennkann .TextFrame.TextRange, oldFnt, newFnt
              End If
            End With
          Next n
        End If
      End With
    Next
  Next
End Sub
Private Sub Hennkann(txtRng As TextRange, oldFnt As Long, newFnt As Long)
  Dim r As TextRange
  If txtRng.Text <> "" Then
    '渡されたTextRangeの中から検索置換
    For Each r In txtRng.Runs
      With r.Font
        If .Color = oldFnt Then
          .Color = newFnt
        End If
      End With
    Next
  End If
End Sub
 
→置換したい色のテキスト(1文字でもいい)を選択してから
 マクロChikannFont実行

投稿日時: 17/08/03 09:02:12
投稿者: 2365

んなっと様、返信ありがとうございます。
残念ながらVBAは使えません(私の能力の問題で)・・・・・と思ったのですが、コピペしてやって
みたら出来ました!!
 
正直教えて頂いた式の意味は分らなかったのですが、置換(?)後のフォント色まで選択できる
ように組んで頂いたのですね。
大変助かりました。
 
因みにですが、色々検索していたら以前のバージョン?では置換でフォント色の置換もできた
ようなブログも見つけたのですが(下記参照)、2013バージョンでは下記記事のような状況では
なく、やはりVBAを組まないと出来ないのでしょうか?
 
http://www.koikikukan.com/archives/2014/06/30-015555.php
 
もしご存知でしたらお教えいただけますと幸いです。
助けて頂いたうえに質問返しで申し訳ありません。

回答
投稿日時: 17/08/03 12:51:17
投稿者: んなっと

Excel(2002以降),Wordではフォントの色の置換が可能です。
こちらはPowerPoint2010ですが、フォントの「色」の置換はできません。
  
 [テーマの色]から「アクセント2」などと選んで文字の色を設定しておき、
あとから変えたいときは
 [デザイン]→[テーマ]→[配色▼]→新しい配色パターンの作成
→「アクセント2」の色を変更
とする方が多いのかもしれません。

投稿日時: 17/08/03 12:54:27
投稿者: 2365

んなっと様、重ねてご返信頂きありがとうございます。
やはり一発置換はできなさそうなのですね。需要はあると思うんですが^^;
 
アクセント2の件、初めて聞く文言でした。無知ですみません。
これからも精進いたします。

トピックに返信