Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1060 / 13645 ツリー ←次へ | 前へ→

【76550】ユーザフォーム(モーダル)で「数式バーのような数式入力」をしたい nossa 15/1/5(月) 10:10 質問[未読]
【76551】Re:ユーザフォーム(モーダル)で「数式バー... kanabun 15/1/5(月) 11:10 発言[未読]
【76552】Re:ユーザフォーム(モーダル)で「数式バー... γ 15/1/5(月) 12:21 発言[未読]
【76554】Re:ユーザフォーム(モーダル)で「数式バー... nossa 15/1/5(月) 14:42 質問[未読]
【76555】Re:ユーザフォーム(モーダル)で「数式バー... 独覚 15/1/5(月) 15:09 発言[未読]
【76557】Re:ユーザフォーム(モーダル)で「数式バー... nossa 15/1/5(月) 16:03 お礼[未読]
【76553】Re:ユーザフォーム(モーダル)で「数式バー... 独覚 15/1/5(月) 13:17 発言[未読]

【76550】ユーザフォーム(モーダル)で「数式バー...
質問  nossa  - 15/1/5(月) 10:10 -

引用なし
パスワード
   はじめまして。nossaと申します。
よろしくお願いします。

行いたいことは、以下です(Excel2010です)。
 ●ユーザフォームをモーダル表示します。
 ●ユーザフォーム内に数式バー(のようなモノ)をつくり
  数式を入力できるようにします。
 ●数式入力の際に「数式バーと同じように入力できる」ようにしたいです。
  
ご指導よろしくお願いします。

【76551】Re:ユーザフォーム(モーダル)で「数式バ...
発言  kanabun  - 15/1/5(月) 11:10 -

引用なし
パスワード
   ▼nossa さん:


> ●ユーザフォームをモーダル表示します。
> ●ユーザフォーム内に数式バー(のようなモノ)をつくり
>  数式を入力できるようにします。

どこまでできていて、
どこでつまづいていますか?

> ●数式入力の際に「数式バーと同じように入力できる」ようにしたいです。

文字列の入力だから、InputBoxなどを使う手もあると思いますが、
UserFormでないとだめなのかな?

【76552】Re:ユーザフォーム(モーダル)で「数式バ...
発言  γ  - 15/1/5(月) 12:21 -

引用なし
パスワード
   ▼nossa さん:
> ●数式入力の際に「数式バーと同じように入力できる」ようにしたいです。
補完機能とか、引数のTips表示なども念頭に、
これと同じものとおっしゃっているなら、それは無理です。
数式バーと同機能のコントロールは無いと思うし、
これを自作するのは不可能だと思います。

【76553】Re:ユーザフォーム(モーダル)で「数式バ...
発言  独覚  - 15/1/5(月) 13:17 -

引用なし
パスワード
   ▼nossa さん:
ユーザーフォームとは別だけれども。
(後にどうつなげるかという問題もあるけれども)

Application.Dialogs(xlDialogFunctionWizard).Show

で「関数の挿入」ダイアログを表示させるというのは使えないだろうか?

【76554】Re:ユーザフォーム(モーダル)で「数式バ...
質問  nossa  - 15/1/5(月) 14:42 -

引用なし
パスワード
   γ さん、kanabunさん

>▼nossa さん:
>> ●数式入力の際に「数式バーと同じように入力できる」ようにしたいです。
>補完機能とか、引数のTips表示なども念頭に、
>これと同じものとおっしゃっているなら、それは無理です。
>数式バーと同機能のコントロールは無いと思うし、
>これを自作するのは不可能だと思います。

ご回答ありがとうございます。
●補完機能等はなくてもよく、
 「セルを選択しながら、数式を入力する("+"や”×”を入力)」を
  行いたいと考えています。
  
●「条件付き書式設定」や「入力規則設定」での
 「式を入力するUI」のようなモノをイメージしています。

●InputBoxを試しました。
  Dim str As Variant
  str = Application.InputBox("数式を入力",Type:=11)
  Debug.Print str
   ↓
●希望の動作とはなりませんでした(使い方が悪いのでしょうか?)
  ■希望する動作:srtに計算式が格納される(たとえば、"=A1*10")
  ■実際の動作 :srtに計算結果が格納される(たとえば、10)

●「str で計算式を受取る」ことはできるでしょうか?


ご教示のほどよろしくお願いします。

【76555】Re:ユーザフォーム(モーダル)で「数式バ...
発言  独覚  - 15/1/5(月) 15:09 -

引用なし
パスワード
   ▼nossa さん:
下記はヘルプでの記述です。

>次の表は、引数 Type に指定できる値をまとめたものです。
>次の値のいずれか 1 つまたは合計値を指定できます。
>たとえば、文字列または数値が入力できるダイアログ ボックスを作成するときは、引数 Type の値を 1 + 2 に設定します。

>値 意味
> 0 数式
> 1 数値
> 2 文字列 (テキスト)
> 4 論理値 (True または False)
> 8 セル参照 (Range オブジェクト)
>16 #N/A などのエラー値
>64 数値配列
Type:=11
であれば1+2+8となって計算結果が返されているのだと思います。
Type:=0
としてみてはどうでしょうか?

ただ、ヘルプでは
>InputBox の引数 Type に 0 を指定すると、"=2*PI()/360" のような数式が、文字列として返されます。
>数式内に参照があれば、それらの参照は A1 形式の参照として返されます。
>参照形式を変換するには、ConvertFormula メソッドを使います。
とセル参照がA1形式で返されるとありましたが自分で試してみたところではR1C1形式になりました。

【76557】Re:ユーザフォーム(モーダル)で「数式バ...
お礼  nossa  - 15/1/5(月) 16:03 -

引用なし
パスワード
   ▼独覚 さん: 皆様


>Type:=0
>としてみてはどうでしょうか?
 
 これで、無事解決しました。
 思った通りの動作になりました。

 独覚さん&皆様 ありがとうごさいました。

1060 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free