https://teratail.com/questions/input
ExcelあるいはWordの数式エディタを用いた数式VBAを用いて編集したい
中学校レベルの「計算問題」(以下数学式)を作成するツールを作成したいと思っています。
しかし、数学式を編集する有効な手段が見つけられませんでした。
そこで、数学式を編集する手段として一番可能性があると考えたのが「OfficeのExcel・Wordに搭載されている数式エディタをマクロで操作する」という方法で、Excel上で数式エディタの編集アクションを「マクロの記録」で取得したのですが、正確に記録ができません。
また、そのマクロを実行しても再現しません。
ExcelあるいはWordの数式エディタをVBAを用いて編集する方法をご教授いただけますでしょうか。
また、もしExcel・Word以外で、かつweb上のツールを利用せずに数学式を出力する方法がありましたら、ご教授ください。
よろしくお願いします。
バージョン
office365
発生している問題・エラーメッセージ
【Excel」
数式エディタで分数やルートを表す編集アクションを記録すると、記録されたマクロのコードに"?1?2?"が入力される
例 :数式エディタで分数「1/2」を入力した動作を記録したところ、下記のように自動記録された。
ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 663, 251.25, 72, 72). Select Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "?1?2?" Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 5).ParagraphFormat.irstLineIndent = 0 With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 1).Font .NameComplexScript = "+mn-cs" .NameFarEast = "+mn-ea" .Fill.Visible = msoTrue .Fill.ForeColor.ObjectThemeColor = msoThemeColorText1 .Fill.ForeColor.TintAndShade = 0 .Fill.ForeColor.Brightness = 0 .Fill.Transparency = 0 .Fill.Solid .Size = 11 .Italic = msoTrue .Name = "Cambria Math" End With
補足:上記のロジックを実行すると、オブジェクト内にテキストとして"?1?2?"が出力される。
【word】
数式を入力しても、数式エディタ上を参照しない
例:数式エディタ上で、ax+y=0を入力
Selection.TypeText Text:="$ax+y=0$"
補足:上記を実行すると、本文に"$ax+y=0$"が出力される。
WordについてはLaTeXの構文を利用した。
その他調査した内容
このソースコードの中で、オブジェクト内の文字について書かれているのは下記のみである、という認識です。
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "?1?2?"
また、最低限度出力したい数学記号は、2次方程式の解の公式です。
ご助力の程、どうぞよろしくお願いいたします。
.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。