Excel VBA質問箱 IV

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

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


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

【79805】変数のあるセル式を作る方法 ペーターパン 18/4/17(火) 15:47 質問[未読]
【79806】Re:変数のあるセル式を作る方法 よろずや 18/4/17(火) 18:47 発言[未読]
【79809】Re:変数のあるセル式を作る方法 ペーターパン 18/4/17(火) 19:11 質問[未読]
【79812】Re:変数のあるセル式を作る方法 よろずや 18/4/17(火) 21:43 回答[未読]
【79811】Re:変数のあるセル式を作る方法 γ 18/4/17(火) 21:07 発言[未読]

【79805】変数のあるセル式を作る方法
質問  ペーターパン  - 18/4/17(火) 15:47 -

引用なし
パスワード
   下記のような式をセルに入力しても計算結果がセルに出力されるようにする方法はあるのでしょうか?

 1)セル式に入力す式
  =NAGASA(L1-50)

 2)L1の値は入力しているセル行の1列目に入力されたタイプによって以下の通りの値を取る
  タイプA : 500
  タイプB : 400
  タイプC : 300

補足1
できればユーザー定義関数を利用せず直接=L1-50と入力したいのですが、それだとあとで計算結果を編集することができなくなると思い、ユーザー定義関数を使用した形にしました。

補足2
入力した式の結果はユーザー定義関数のようにアクティブにセルに出力される形式としたいです。ただし、表示更新を自動で連発されるようなマクロは重くなってしまうので避けたいです。

稚拙な文章で大変恐縮ですが、何卒ご助力お願い致します。

【79806】Re:変数のあるセル式を作る方法
発言  よろずや  - 18/4/17(火) 18:47 -

引用なし
パスワード
   >表示更新を自動で連発されるようなマクロは重くなってしまうので避けたいです。
でしたら、セル行の1列目を引数に含める必要があります。

【79809】Re:変数のあるセル式を作る方法
質問  ペーターパン  - 18/4/17(火) 19:11 -

引用なし
パスワード
   ▼よろずや さん:
>>表示更新を自動で連発されるようなマクロは重くなってしまうので避けたいです。
>でしたら、セル行の1列目を引数に含める必要があります。

回答ありがとうございます。
引数に入れなくてはダメですか。
できれば引数にいれずにうまく動くと嬉しかったのですが・・・。
そんな都合のいい方法はないのですね。
そうなると組み方は
 ・引数に入れる。
 ・引数から該当するL1を算出するようにFunctionプロシージャ内で組む
ということでしょうか?
やってみます。
他にも方法がある、こうすればできるなどありましたあらお返事頂けますと嬉しいです。
まずは上記方法で作ってみます。

【79811】Re:変数のあるセル式を作る方法
発言  γ  - 18/4/17(火) 21:07 -

引用なし
パスワード
   ユーザー定義関数で可能かどうかといえば可能でしょう。
例えば、以下。

Function NAGASA()
  NAGASA = Cells(Application.Caller.Row, 1).Value - 50
End Function

でも、引数を与えたほうが内容が明確になるのでお薦めです。

【79812】Re:変数のあるセル式を作る方法
回答  よろずや  - 18/4/17(火) 21:43 -

引用なし
パスワード
   >引数に入れなくてはダメですか。
>できれば引数にいれずにうまく動くと嬉しかったのですが・・・。
>そんな都合のいい方法はないのですね。
引数に入れないと、セル行の1列目を書き換えたときに関数の再計算が実行されません。
実行できるようにする方法もありますが、それをやると重くなります。

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