インストールレスプログラミング( ´ー`)

VBA , JavaScript , HTAなど 365アプリはインストール必要ですが、仕事に無いケースはほぼないから(・_・;)

Powerpoint VBA 数式を書く

突破口なのかもしれない。

はじめて有力なものにあいました。

というか,以前その記事を読んだときに,その有用さがわからずスルーした。

わたしは確かに以前同じページを読んでいたけど,活かす能力がありませんでした(;´▽`A``。

stackoverflow.com

こちらで紹介されているのは,Powerpointの数式機能をVBAで実現している記述です。

まだきちんと読み解いていないのですが,とにかく数式を書けるというその一点だけで私には大きいので,忘れないように書き留めます。

そのうちきちんと描きなおしたりする・・はず。

試し中のコード

Sub insert_equation2()
ActiveWindow.Selection.Unselect
  
Dim TRange As TextRange
Application.CommandBars.ExecuteMso ("InsertBuildingBlocksEquationsGallery")
Set TRange = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange


  TRange.Font.Size = 16
  TRange.Text = "2\sqrt2 /2"
  
  Application.CommandBars.ExecuteMso ("EquationProfessional")
'ActivePresentation.SlideShowSettings.Run
End Sub

Sub WhatIsTheEquationMadeOf()

Dim x As Long

With ActiveWindow.Selection.ShapeRange(1).TextFrame2.TextRange
   For x = 1 To Len(.MathZones(1).Text)
      Debug.Print AscW(Mid$(.MathZones(1).Text, x, 1))
   Next
End With

End Sub

insert_equation2を実行するととりあえず,(2√2)/2を書きます。

わたしにはこれだけで大進歩。

もうひとつのコードは数式オブジェクトが何を示しているのかきちんと調べているコードじゃないかと思われるわけで,

これを応用すれば 書かれた数式が正しいかどうか評価するのにつかえるんじゃないだろうか・・

と思ってとりあえず貼っています。

可能性を見た(ΦωΦ)ドウナルカワカラナイケド

stackoverflow.com
ここも役に立ちそうだからとりあえずはっておく。
TextRange2.MathZones プロパティ (Office)
stackoverflow.com