Excel VBA質問箱 IV

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

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


6913 / 13646 ツリー ←次へ | 前へ→

【42316】変動量を求めるVBA マーボー 06/9/6(水) 14:44 質問[未読]
【42336】Re:変動量を求めるVBA 漂流民 06/9/7(木) 0:54 発言[未読]
【42346】Re:変動量を求めるVBA マーボー 06/9/7(木) 14:25 質問[未読]
【42358】Re:変動量を求めるVBA 漂流民 06/9/8(金) 1:33 発言[未読]
【42359】Re:変動量を求めるVBA やっちん 06/9/8(金) 1:43 発言[未読]
【42360】Re:変動量を求めるVBA [名前なし] 06/9/8(金) 1:45 発言[未読]
【42376】Re:変動量を求めるVBA マーボ 06/9/8(金) 20:32 質問[未読]
【42380】Re:変動量を求めるVBA [名前なし] 06/9/8(金) 22:49 発言[未読]

【42316】変動量を求めるVBA
質問  マーボー  - 06/9/6(水) 14:44 -

引用なし
パスワード
   『変動量を求める関数を教えてください。』たとえば、A1の項目が外部のデータからリンクしてその数値が絶えず変動しています。このときに変動するたびに変動量が出る関数とかあるのでしょうか?
例(A1)=1520 これが1550になったとき変動量が30ですのでこの30をたとえ(C1)に表示したいのですが??

どなたか詳しい人教えてください。

よろしくおねがいします。

【42336】Re:変動量を求めるVBA
発言  漂流民  - 06/9/7(木) 0:54 -

引用なし
パスワード
   ▼マーボー さん:
こんばんわ

>『変動量を求める関数を教えてください。』たとえば、A1の項目が外部のデータからリンクしてその数値が絶えず変動しています。このときに変動するたびに変動量が出る関数とかあるのでしょうか?
>例(A1)=1520 これが1550になったとき変動量が30ですのでこの30をたとえ(C1)に表示したいのですが??
>
>どなたか詳しい人教えてください。
>
>よろしくおねがいします。

残念ながら、「変動量を求める関数」というのは知りません。
また、詳しくもありません。悪しからず。

>外部のデータからリンクしてその数値が絶えず変動しています。
こういうことをしたことがないので上手く行くかは分かりませんが、
やり方としてこういうのはどうでしょう?


Public Before_Value As Long

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address(0, 0) = "A1" Then
    Range("C1").Value = Range("A1").Value - Before_Value
    Before_Value = Range("A1").Value
  End If
End Sub

【42346】Re:変動量を求めるVBA
質問  マーボー  - 06/9/7(木) 14:25 -

引用なし
パスワード
   ありがとうございました。

でもやってみましたが、だめでした。
他によい方法ないでしょうか?
よろしくおねがいします。


▼漂流民 さん:
>▼マーボー さん:
>こんばんわ
>
>>『変動量を求める関数を教えてください。』たとえば、A1の項目が外部のデータからリンクしてその数値が絶えず変動しています。このときに変動するたびに変動量が出る関数とかあるのでしょうか?
>>例(A1)=1520 これが1550になったとき変動量が30ですのでこの30をたとえ(C1)に表示したいのですが??
>>
>>どなたか詳しい人教えてください。
>>
>>よろしくおねがいします。
>
>残念ながら、「変動量を求める関数」というのは知りません。
>また、詳しくもありません。悪しからず。
>
>>外部のデータからリンクしてその数値が絶えず変動しています。
>こういうことをしたことがないので上手く行くかは分かりませんが、
>やり方としてこういうのはどうでしょう?
>
>
>Public Before_Value As Long
>
>Private Sub Worksheet_Change(ByVal Target As Range)
>  If Target.Address(0, 0) = "A1" Then
>    Range("C1").Value = Range("A1").Value - Before_Value
>    Before_Value = Range("A1").Value
>  End If
>End Sub

【42358】Re:変動量を求めるVBA
発言  漂流民  - 06/9/8(金) 1:33 -

引用なし
パスワード
   ▼マーボー さん:
こんばんわ

>でもやってみましたが、だめでした。
>他によい方法ないでしょうか?
まず、他の方法を考える前にどのように駄目だったのかを報告してください。
大まかに考えられるのが、

駄目パターン1
新規ブックに前回のコードを使用して、セル”A1”に
「100」とキーボードから入力してもセル”C1”に何も変化がない

駄目パターン2
駄目パターン1のやり方でセル”C1”は変化するが
セル”A1”が外部のデータからリンクしているとセル”C1”は変化しない

どちらのパターンで駄目だったのでしょうか?
それによって解決への方向がだいぶ変わります。

【42359】Re:変動量を求めるVBA
発言  やっちん  - 06/9/8(金) 1:43 -

引用なし
パスワード
   こんばんは。
今までの経緯です。
http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20060905232553]]

【42360】Re:変動量を求めるVBA
発言  [名前なし]  - 06/9/8(金) 1:45 -

引用なし
パスワード
   Calculateイベントだとどうなんでしょうか?
漂流民さんのコードをお借りして、

Public Before_Value As Long

Private Sub Worksheet_Calculate()
  If Range("A1").Value <> Before_Value Then
    Range("C1").Value = Range("A1").Value - Before_Value
'    Cells(Rows.Count, "C").End(xlUp).Offset(1).Value = _
      Range("A1").Value - Before_Value
    Before_Value = Range("A1").Value
  End If
End Sub

同じくシートモジュールに記入してみてください。

【42376】Re:変動量を求めるVBA
質問  マーボ  - 06/9/8(金) 20:32 -

引用なし
パスワード
   ありがとうございます。
試してみました。
Calculateイベントだとシート内のセルが変化するたびに実行してしまい
絶えず動きっぱなしになります。
出来ればセルA1が変化したときだけ実行されるように出来ないですか?
よろしくお願いします。


▼[名前なし] さん:
>Calculateイベントだとどうなんでしょうか?
>漂流民さんのコードをお借りして、
>
>Public Before_Value As Long
>
>Private Sub Worksheet_Calculate()
>  If Range("A1").Value <> Before_Value Then
>    Range("C1").Value = Range("A1").Value - Before_Value
>'    Cells(Rows.Count, "C").End(xlUp).Offset(1).Value = _
>      Range("A1").Value - Before_Value
>    Before_Value = Range("A1").Value
>  End If
>End Sub
>
>同じくシートモジュールに記入してみてください。

【42380】Re:変動量を求めるVBA
発言  [名前なし]  - 06/9/8(金) 22:49 -

引用なし
パスワード
   >出来ればセルA1が変化したときだけ実行されるように出来ないですか?
そうしたつもりなんですが。

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