
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
excellの標準コントロールでは分数やべき乗を表現できるモノがないんですよ。
したがって、その書式化には下記URLの様な工夫が必要。
https://support.microsoft.com/ja-jp/office/テキストまたは数値を上付きまたは下付き文字として書式設定する-3649411b-adf4-483e-b0e8-7b844605da74
それをUserformに表示したいならImageコントロールで画像として表示すればよいし、または WebbrowserコントロールなどでCSSで表現するか。
>ボタンに反応して表示するような事をしたい
それは貴方がその様にプログラムを書けば上記の方法で可能。ボタンを押したら表示の更新処理を入れれば良いだけです。
あなたが他言語に精通してActiveXコントロールを自作できるだけの技量があるなら無いものは作れば良いでしょう。
ご質問分を拝見するにビギナーさんとお見受けしましたので、皆さん実現可能そうな現実的な工夫を回答されてます。
その意図を汲まずにダメ出しばかりでは回答のしようも無いです。
No.6
- 回答日時:
2 5(6+7)
1+───+──── ←罫線素片
3+4 8⁹
のように3行で表記し3つのテキストボックに一行ずつ表示し背景色を透明にし行間を詰めればそれらしく見えるのでは。電卓だし、分母や分子の中にさらに除算がある場合は/表記でもいいんじゃないでしょうか。
また、Wordをお使いの場合やブラウザと連携するのであればMathMLが使えるでしょう。MathMLなら大抵の式に対応可能。WebBrowserコントロールをIE互換で使う場合もMathJaxのようなライブラリの助けがあればいけそうだと思います。
ちょこっと MathJax: 初期設定 | text.Baldanders.info
https://text.baldanders.info/remark/2017/09/gett …
No.5
- 回答日時:
こんにちは。
表示する場所が、Userform上のTextboxコントロールなのか、ワークシート上のテキストボックス(シェープ)なのかで話が変わります。
後者なら良いアイディアが既に回答されています。
前者ならTextboxコントロールに拘らず、例えばImageコントロールの外観をTextbox風に変更すれば、表示だけなら可能かと。
考え方としては、
1. UserformにTextbox1, Image1を配置
2. 数式の入力はTextbox1に
3. 何らかのイベントをトリガーにして、既にご紹介のあった方法で2の内容を数式変換したシェープをワークシート上に作成
4. 3をコピー
5. クリップボードから拡張メタファイルの画像をとりだして、Image1コントロールのPictureプロパティにセット
かな。
難易度は高めなので、VBAに慣れている方でないと厳しいです。
需要があればソース書いてみます。
ただ、分数は難しいかもですよねー。
コンピュータで計算すると、
1/3+1/3+1/3=1
にならないし。0.999999…
以外と電卓は奥が深いテーマです。
余談
手っ取り早くWebbrowserコントロールでGoogle計算機を表示しちゃうのは?
計算結果はgetElementBy~辺りで取得できるんじゃないかと、思ったり。
No.4
- 回答日時:
No3です。
>No.1の①だとTextboxには出来ないから、無理ですよね?
No1に基本的な内容は回答したつもりです。
テキストボックスには書けません。
ただし、表示だけの問題なので、そのつもりになれば利用することは可能です。
Formも利用できませんので、UIを自分で作成する必要があります。
>②だと少し強引だと思います。
背景色、ボーダーを地の色と同じにしておけば、個々のボックスは見た目にわからなくなるので、自由に配置できます。
後は、それぞれのボックスに分解した文字を、適当なサイズで記入すれば良いだけでしょう。
分数の表示程度ならまだ簡単ですが、複雑な式にも対応するなら、こちらの方が上記よりもさらに面倒ではないかと想像します。
とは言え、他の方法がお好みなのなら、それに関しては質問者様の好き好きなので、お好みでどうぞ。

No.3
- 回答日時:
No2です
>Excel vbaで分数の表示が難しいので有れば
No1に、すぐに思いつくような方法を回答したつもりですけれど??
>ライブラリーを導入して機能を拡張するんでしょうか?
数式エディタ自体がライブラリのようなものです。
LaTex形式も解釈してくれるみたいなので(完全互換ではありません)、それを利用すれば扱いそのものはかなり簡単になることでしょう。
https://qiita.com/HMMNRST/items/492d76dd4ba0ef52 …
とはいっても、このくらいのことにすら手を動かすことをなさらない質問者様にとっては、難しいであろうという意味です。
>それともpythonとか頑張ってみる感じですかね?
pythonがお得意なのなら、そちらでどうぞ。
No.2
- 回答日時:
No1です。
>では、冪乗の指数を数字の右上に表示するのは出来ますか?
エクセルがあるのなら、ご自分で試してみようとも思わないのでしょうか?
その発想から察するところ、残念ながら、この書式をVBAから使いこなそうというのには無理がありそうな気がします。

No.1
- 回答日時:
こんばんは
表示に関しては普通のテキストボックスの単体機能だけでは難しいでしょう。
分数を表示する方法として考えられるのは、
①「数式エディタ」で表示する方法
(「挿入」-「記号と特殊文字」から入力できる数学数式の機能)
テキストボックスではありませんが、表示はかなり綺麗にできます。
ただし、その実態はShapeオブジェクトです。
さらに、これは特殊なオブジェクトですので、扱うのはそれなりに面倒になるものと思います。
単独の分数だけではなく、通常の数式等も全て同じ方式で表示しようとするのなら、書式等もかなり調べなければならないでしょう。
②テキストボックスを2つ利用する方法
分子の表示と分母の表示を別のボックスに分け、間に罫線等を入れて表示する。
どちらの場合も、分子、分母それぞれの編集操作は可能と思いますが、Formのテキストボックスの場合は文字位置調整(中央ぞろえなど)がきかないようですので、位置ぞろえに苦労しそうです。
シートオブジェクトの(通常の)図形オブジェクトで代用する方が簡単なのではないかと思いますが、その代わりと言ってはなんですが、UserFormのようなUIの機能は用意されてはいませんので、かなりの部分を自作することが必要になるものと想像します。
>分数がちゃんと割り算として機能するようなもの~
計算処理は、VBAで行うのですよね?
であれば、分子、分母をそれぞれ認識できていさえすれば、それに応じた計算を行うだけのことではないでしょうか?
表示にこれだけ凝るのですから、計算が多少面倒になるのはやむを得ないことと思いますが・・
(表示処理の方が余程面倒だと思いますけれど・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Visual Basic(VBA) Vba 電卓 一文字消すボタン 3 2022/05/04 13:40
- 時計・電卓・電子辞書 関数電卓についての質問です 大学で食品について学んでいるのですが 学生実験で関数電卓が必要と言われま 7 2022/10/07 16:47
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
- Excel(エクセル) 「製品研磨」取り代時間設定の計算が複雑 2 2022/07/30 01:12
- Visual Basic(VBA) Vba コマンドボタンイベントの共通化 2 2022/05/27 19:01
- Excel(エクセル) 【 Excel 】映画を見る時間を分割して見るのに、Excel で目安を付けたいのです。 2 2022/10/20 19:16
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
256色で任意の色を作成する時、...
-
visual basic初心者です。 visu...
-
テキストボックスでMAX文字数を...
-
VBAで選択箇所がある場合の重複...
-
VBAのユーザーフォームで、テキ...
-
VB2010 TextBoxの数字の表示...
-
基本的な質問で本当に申し訳あ...
-
TextBoxの内容を右寄せ
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
チェックボックスを操作できな...
-
オートメーションで作成したExc...
-
RichTextBoxで指定行の色を自動...
-
クリップボードにアクティブウ...
-
ClickとChangeイベントの違いは...
-
C言語のサフィックスについて
-
レコードセットにnullの場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
VBAのユーザーフォームで、テキ...
-
コンボボックスからテキストボ...
-
VBでの入力値制限について
-
テキストボックスに大文字を
-
テキストボックスにカーソルを...
-
VBでローマ字入力とかな入力を...
-
年齢の計算について
-
ACCESS 除算での小数点切上げ方法
-
Excel ユーザーフォームで計算 ...
-
【C#】コンボボックスにおけるS...
-
VB2010 TextBoxの数字の表示...
-
VBAのフォーム カーソル移動
-
TextBoxの内容を右寄せ
-
VB2005テキストボックスへのコ...
おすすめ情報
では、冪乗の指数を数字の右上に表示するのは出来ますか?
Excel vbaで分数の表示が難しいので有れば、ライブラリーを導入して機能を拡張するんでしょうか?それともpythonとか頑張ってみる感じですかね?
No.1の①だとTextboxには出来ないから、無理ですよね?②だと少し強引だと思います。Google電卓のx^yボタンの機能を実装したいです。
Google電卓でx^yを押すとちゃんとした冪乗の形が出てきますよね。ただ表示するだけではなく、ボタンに反応して表示するような事をしたいのですが、それでも同じ方法ですか?Webbrowserはあまり達成感が無いので無理ですね。