Powerpoint VBA 上付き文字の調整マクロ(イベント利用)
効率的には 以前書いた
こちらのほうが,絶対使い勝手はいいんですが,改善させれれば面白いかもなぁと思いイベントと絡めて上付き文字の相対位置を50%にするマクロを書いてみました。
今,酸化還元の教材作成中で,とにかくひたすら上付き文字が登場します。
電子のe^-とか MnO_4^- とかです。_の直後は下付きにしたい,^の直後は上付き文字にしたいやつです。
平打ちして後で変換させてもいいのか。。また考えるか。。
実用的ではないにしろ,イベントの使い方とか,自分が完璧に忘れていたのでそういう意味でも書いておきます。
標準モジュール
Option Explicit Private cls As AppEvent Sub スタート() Set cls = New AppEvent Set cls.App = Application End Sub
クラスモジュール AppEvent.cls
Option Explicit Public WithEvents App As Application Private Sub App_WindowSelectionChange(ByVal Sel As Selection) On Error GoTo Escape Dim tr As TextRange With Sel For Each tr In .TextRange.Runs If tr.Font.Superscript = msoTrue Then tr.Runs.Font.BaselineOffset = 0.5 End If Next End With Exit Sub Escape: End Sub
パワーポイントの場合は残念ながら自動的にイベントは発生しませんので,それをスタートさせるために スタート というマクロを標準モジュールに準備
スタートを実行させた後はしばらくはイベントが発生しています。表現が曖昧ですみません。
選択部分が変更されたとき,というイベント部分にコードを書きこんでいます。
選択部分を限定するのが面倒だったため,今回は 極めて大雑把な方法でエラーを無視しています。 On error Goto でふっとばしています。
選択部分に 上付き文字を見つけたら,相対位置を50%にするよ,というのが中身です。 (BaselineOffset のとこ)
動かしているとこんな感じになります。
微妙な違いが見えますでしょうか。。事前に上付き文字にしている(相対位置30% デフォ)が 選択し終わったら上にすこーし上がります。(相対位置50%)
イベントを利用しているのである程度自動化でき・・る・・・。
まぁ,最初に書いたように,作り終わった後まとめてやればいいことなんです。
または,平打ちしたものを編集させるようにマクロを組むのもいいですよね。。そちらの方がいいかなぁ。
上付き文字を適用したときをイベントで捕捉して勝手に50%にする,というのを本当はやりたかったんですが,そういうイベントは見つけきれませんでした。
何かの役に立つこともあるかもしれないということで,これ自身は実用性に乏しいですが,書いてみました(;´・ω・)