読者です 読者をやめる 読者になる 読者になる

Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

Powerpointで数式を書く 続き

Powerpoint VBA

完全ではありませんが,数式を少しずつかけるようになってきました。

波が完全に後回しになっていますが,実は数式もずっと追っていた内容なので,今はこちら

特に数式のほうは,解決策がまったくわからず困っていたので,なんとか進めたい。

Sub InsertEquation()
Dim TargetSlide As Slide: Set TargetSlide = ActivePresentation.Slides(1)
Dim TRange As TextRange: Set TRange = TargetSlide.Shapes("Eq").TextFrame.TextRange

TRange.Select
TRange.Text = ""
Application.CommandBars.ExecuteMso ("InsertBuildingBlocksEquationsGallery")

    TRange.Text = "(数式のテスト)/(2a+\sqrt (てすと))"

Application.CommandBars.ExecuteMso ("EquationProfessional")

Set TRange = TargetSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 500, 100, 300, 200).TextFrame.TextRange
TRange.Select

Application.CommandBars.ExecuteMso ("InsertBuildingBlocksEquationsGallery")

    TRange.Text = "x=(-b+-\sqrt (b^2-4ac))/2a"

Application.CommandBars.ExecuteMso ("EquationProfessional")

End Sub

このコードでは,前半部分ですでにあるテキストボックスに数式を入れるということをしてみています。

後半部分では,テキストボックスを作るところから書いてみています。

既存のテキストボックスに数式を入れる場合,すでに数式があると挙動が変わってしまうようなので,そのようなときはすでにある値を 消して書くという対応を今はしています。

f:id:chemiphys:20170218102900p:plain
このように,Eqというテキストボックスのみの状態で上記のコードを実行すると,
f:id:chemiphys:20170218103016p:plain

結果はこのように。既存のテキストボックスに数式を入れることに成功していますし,新しくも作れています。

まず作りたい数式を作る,という段階の最低限の処理はクリア,かな。

Selectして,コマンドバーの機能を利用しないとできないというのは不服極まりありません。
スライドショーが一度閉じてしまうので本当は避けたい。

でも,背に腹はかえられない。糸口としてきちんと進んだと思います。

追記 MathZoneの確認をしてみた

f:id:chemiphys:20170218104747g:plain