Powerpoint VBA 上付き文字を少し上げるコード
とても忙しい日々が続いていて,職場ではデータ処理にまたコレクションオブジェクトやthomさん達に教えていただいて作れたソートのコード等を用いてデータ処理をしている日々です。
年度末は大変。。
そうやって忙しい日々を過ごしつつ,次年度のことも近づいてきますので,そちらにも思いを馳せないといけません。
来年度はまた新しいことがやれるのかな。力を蓄えないと,教材も作らないと,いろいろ絵も描かないと,と気はあせるんですが,まったく時間はありません。
コレクションを用いてデータ処理をする方法は抽出やソートを自在にやれ,とても便利なことこの上ありません。
これもきちんと見直したいんですけどね。いろいろ いろいろ 手をだし頭を使い,としているのですでに飽和状態。
いつか整理する時間を取らないといけませんね。。
ネタを考える暇も,正規表現の勉強をする暇もありませんでしたので,かなり以前作ったコードを探してきました。
それは,地味~なコードです。
なんの変哲もない,簡単な数式です。みなさんはこの数式を見てどう思われますか?私は若干不服です。
違いが伝わりますでしょうか。ちょっと上付き文字が上に上がっているんです。
パワーポイントでは,WordやExcelと違い,上付き文字の相対位置が調節できます。
デフォルトは30%です。
わたしの感覚では,ちょっと目立たない。職業的に指数なのかそうでないかというのは,きっちり伝えたいので,ちょっと30%では物足りなく,50%にしたいなと思います。
デフォルト値をいじれればいいんですが,そういう設定はなさそうです。
なので,マクロで作りました。もう1年位前です。今ならもっときれいに組めるのかな。。パワーポイントのマクロが全く理解できていない時にトライアンドエラーで組んだやつです。
Sub SuperScript50All() Dim x As Slide Dim y As Shape Dim z As Table Dim zRow As Integer Dim zCol As Integer Dim rng As TextRange Dim i As Integer Dim j As Integer Dim k As Integer Dim cntHit As Integer cntHit = 0 For Each x In ActivePresentation.Slides For Each y In x.Shapes If y.HasTextFrame Then Set rng = y.TextFrame.TextRange For i = 1 To rng.Length If rng.Characters(i).Font.Superscript = msoTrue Then rng.Characters(i).Font.BaselineOffset = 0.5 cntHit = cntHit + 1 End If Next End If Next Next For Each x In ActivePresentation.Slides For Each y In x.Shapes If y.HasTable Then Set z = y.Table zRow = z.Rows.Count zCol = z.Columns.Count For j = 1 To zRow For k = 1 To zCol With z.Cell(j, k).Shape.TextFrame.TextRange For i = 1 To .Length If .Characters(i).Font.Superscript = msoTrue Then .Characters(i).Font.BaselineOffset = 0.5 cntHit = cntHit + 1 End If Next End With Next Next End If Next Next MsgBox ("上付き文字は" & cntHit & "個あり、相対位置を50%に設定しました。") End Sub
ちゃんと見直さないといけないですね。ループ,スゴイ深さだ。。
イチオウツカエマシタヨ。。