Excel VBA質問箱 IV

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

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


5125 / 13644 ツリー ←次へ | 前へ→

【52341】反復計算について 海川豊大 07/11/9(金) 13:03 質問[未読]
【52342】Re:反復計算について じゅんじゅん 07/11/9(金) 13:43 発言[未読]
【52343】Re:反復計算について 海川豊大 07/11/9(金) 15:15 お礼[未読]
【52436】Re:反復計算について 海川豊大 07/11/14(水) 13:15 質問[未読]
【52439】Re:反復計算について じゅんじゅん 07/11/14(水) 14:54 発言[未読]
【52440】Re:反復計算について 海川豊大 07/11/14(水) 15:19 質問[未読]
【52449】Re:反復計算について じゅんじゅん 07/11/14(水) 16:51 発言[未読]
【52512】Re:反復計算について 海川豊大 07/11/16(金) 9:34 お礼[未読]

【52341】反復計算について
質問  海川豊大  - 07/11/9(金) 13:03 -

引用なし
パスワード
   固定されたセルに、0.001〜0.999の範囲で0.001刻みでパラメータが入るとします。パラメータの入ったセルを参照して、計算するセル(数式)があるとして
以下のことをVBAで行いたいのですがどのようにすれば良いでしょうか?
よろしくお願いします。
(素人ながら参考書やネットで見てますが不明です。何となくfor next を
 使うのかな?などと調べてるのですが・・)

===================================
・0.001から0.999まで自動的に計算させる。
・別のシートにA列に0.001〜0.999までのパラメータを記入。その隣のB列に
 計算するセル(数式)の計算結果を記入する。
===================================

【52342】Re:反復計算について
発言  じゅんじゅん  - 07/11/9(金) 13:43 -

引用なし
パスワード
   ▼海川豊大 さん:
>固定されたセルに、0.001〜0.999の範囲で0.001刻みでパラメータが入るとします。パラメータの入ったセルを参照して、計算するセル(数式)があるとして
>以下のことをVBAで行いたいのですがどのようにすれば良いでしょうか?
>よろしくお願いします。
>(素人ながら参考書やネットで見てますが不明です。何となくfor next を
> 使うのかな?などと調べてるのですが・・)
>
>===================================
>・0.001から0.999まで自動的に計算させる。
>・別のシートにA列に0.001〜0.999までのパラメータを記入。その隣のB列に
> 計算するセル(数式)の計算結果を記入する。
>===================================

セルA1〜A20までに0.001〜0.020を代入するなら

With Range("A1:A20")
   .Value = "=Row()/1000"
   .Value = .Value
   .NumberFormat = "0.000"
End With

こんな感じではどうでしょう?
ご参考になれば。

【52343】Re:反復計算について
お礼  海川豊大  - 07/11/9(金) 15:15 -

引用なし
パスワード
   ありがとうございます。参考になりました。
VBA素人なもので、ここからが時間がかかりそうです。汗。。。

>セルA1〜A20までに0.001〜0.020を代入するなら
>
>With Range("A1:A20")
>   .Value = "=Row()/1000"
>   .Value = .Value
>   .NumberFormat = "0.000"
>End With
>
>こんな感じではどうでしょう?
>ご参考になれば。

【52436】Re:反復計算について
質問  海川豊大  - 07/11/14(水) 13:15 -

引用なし
パスワード
   固定されたセル(例えばA1)の中に、0.001〜0.999までの値を入れたいときは
どのようにすればよろしいでしょうか?
ちなみに、C1セルに例えば =A1*a*b という関数が入っている場合
A1セルを0.001〜0.999に変化させていきながら C1セル〜C999まで計算結果を
入れていきたいのです。
よろしくお願いします。  

【52439】Re:反復計算について
発言  じゅんじゅん  - 07/11/14(水) 14:54 -

引用なし
パスワード
   ▼海川豊大 さん:
>固定されたセル(例えばA1)の中に、0.001〜0.999までの値を入れたいときは
>どのようにすればよろしいでしょうか?
>ちなみに、C1セルに例えば =A1*a*b という関数が入っている場合
>A1セルを0.001〜0.999に変化させていきながら C1セル〜C999まで計算結果を
>入れていきたいのです。
>よろしくお願いします。  

A1を変化させながらと言うのがよくわかりませんが、
セルC1〜C99までに0.01〜0.99の値を入れるなら

Sub test()
Dim i As Integer
For i = 1 To 99
   Range("C" & i).Value = (i / 100)
Next
End Sub
こんなのでも。

aとbに何が入るのか不明なので省いてますが。

【52440】Re:反復計算について
質問  海川豊大  - 07/11/14(水) 15:19 -

引用なし
パスワード
   セルに0.001〜0.999まで入れるマクロは、お陰様で理解できました。
A1に0.001〜0.999まで数値を入れたときに、C1に入っている関数の値が
どのように変化するかを確認したいのです。
C1の値は、A1の値によって変化します。

最終的には、C1のセル結果を参照したD1の値を検証したいのですが、上記
がわかれば自分でもおこなえるだろうと思っています。っていうかほとんど
教えてもらっている状態ですが・・・

よろしくお願いします。

【52449】Re:反復計算について
発言  じゅんじゅん  - 07/11/14(水) 16:51 -

引用なし
パスワード
   ▼海川豊大 さん:
>A1に0.001〜0.999まで数値を入れたときに、C1に入っている関数の値が
>どのように変化するかを確認したいのです。
>C1の値は、A1の値によって変化します。

Sub test2()
Dim i As Integer
For i = 1 To 99
   Range("A1").Value = (i / 100)
'      ^^^
Next
End Sub
とすればA1に順次数値を代入できますが、一瞬でループが終わってしまい、
この場合0.99だけが代入されているように見えますよ。

例えば、
   Range("A" & i).Value = (i / 100)
   Range("C" & i).Value = (i / 100) * 2 * 3

とかにして、A列の値によるC列の値の変化をみるとかではダメですか?

【52512】Re:反復計算について
お礼  海川豊大  - 07/11/16(金) 9:34 -

引用なし
パスワード
   大変参考になりました。下記案使用させて頂きます!!!
ありがとうございました。


>例えば、
>   Range("A" & i).Value = (i / 100)
>   Range("C" & i).Value = (i / 100) * 2 * 3
>
>とかにして、A列の値によるC列の値の変化をみるとかではダメですか?

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