Powerpoint VBA 表のそれぞれのセルの文字に処理を行う
さっきの続きです。
ひさびさにPowerpointのVBAのことが書けるのでとても気分がいいです。
タイトル詐欺になるので!
やっていることはさっきの続きで,たくさんのセルや文字があるので,こういう時こそマクロの出番だよ,というものです。
教材作成と並行していますので,勢いで書いています。スミマセン。
コードはこちら。さくっと使えるようにということで,選んだテーブルに処理を行います。
Sub 書式調整() Dim TargetTable As Table: Set TargetTable = ActiveWindow.Selection.ShapeRange.Table Dim r As Row, c As Cell, tr As TextRange For Each r In TargetTable.Rows For Each c In r.Cells For Each tr In c.Shape.TextFrame.TextRange.Characters If tr = Chr(11) Then tr.Delete If IsNumeric(tr) = True Then tr.Font.Size = 12 tr.Font.Subscript = msoTrue Else tr.Font.Size = 14 End If Next Next Next End Sub
For Eachだらけですね(ΦωΦ)好きなんです。
Table → Rows → Cells → Characters → 各Character (オブジェクトとしてはTextRangeオブジェクトになります)
と全てコレクションオブジェクトなので,For eachで降りていけます。RowsはColumnsでもいけるようです。
アクセスする順番は変わりますけど。。
たまたまわたしがやったやつでは, 改行が Chr(11)でしたので,邪魔なので削除しています。
数字は小さくしたかったので IsNumericで判断して,小さくし,さらに下付き(SubScript)にしています。
そうでなかったらSizeを14にする。
あとは数値をトライアンドエラーで自分好みのサイズの組み合わせにしていきます。
※テキストが 金属と非金属逆でした ハズカシ(;´▽`A`` 修正
私好みな感じになりました。
こんなのいちいちやっていると大変なので,これはマクロの出番ですね。