前提・実現したいこと
パワーポイントで、「全ての書式をクリア」コマンドに相当する操作を、全スライドに渡りマクロで実現したいです。
さらに具体的には「書式」のうち「フォント」情報のみリセットし、スライドマスターの指定フォントに統一できるようにしたいです。(色や太字情報は残す)
フォントを完全に指定するのではなく、スライドマスターごとに臨機応変に変換して欲しいのです。
発生している問題・エラーメッセージ
*「フォントの置換」コマンドや、スライドマスターでの統一、「デザイン」のフォント変更ではうまく変換できない場合が多いです
*上記では、Calibri英字フォントが一部Mandelになってしまう不具合などもあります
該当のソースコード
Powerpoint 2016 for Macのマクロ(VBA)を使用しています
試したこと
以下、https://www.relief.jp/docs/powerpoint-macro-replace-fonts.htmlの
コードですが、フォント名を指定せねばならず、リセットする方法がわかりません。
とりあえず走らせることは可能です。
Sub フォントを一括変更する() Dim sld As Slide Dim shp As Shape For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes With shp If .HasTextFrame Then With .TextFrame.TextRange.Font .Name = “Calibri” .NameFarEast = “メイリオ” End With End If End With Next shp Next sld End Sub
スライドマスターを取得して、そのフォント情報を適用できれば、問題は解消されますか?
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.master
With .TextFrame.TextRange.Font
.Name = ActivePresentation.SlideMaster.TextStyles.Item(Type:=ppDefaultStyle).Levels(Level:=1).Font.NameAscii
.NameFarEast = ActivePresentation.SlideMaster.TextStyles.Item(Type:=ppDefaultStyle).Levels(Level:=1).Font.NameFarEast
End With
で解決しました!
現在のスライドマスターフォントを指定するので、
別のマスターフォントのスライドにコピーした時にフォントが引き継がれてしまうことを懸念しましたが、きちんとフォントは「リセット」されていました。
この理屈はよくわかりません・・・
「スライドマスターのフォント」というのが、「フォント指定がない状態」を指しているという認識でしょうか。
ありがとうございます。
解決されたのであれば、自己回答、ベストアンサーとして質問を閉じていただけたらと思います。
回答1件
あなたの回答
tips
プレビュー