• ベストアンサー

数字間差を求めるVBAのソースを教えて下さい。

どなたかご存じでしたら回答願います。 数字選択式宝くじのミニロトの抽選結果をエクセルにつけております。 下記のような抽選結果があったとします。 この結果について、エクセルVBAを実行すると、 数字間差を計算するためのソースはどうゆうふうな記述をすればよいですか? 【抽選結果シート】・・・最新の抽選結果を一番したのセルに入力しています。 第1 第2 第3 第4  第5  ボ数字 1   2   5   6    7    21 10   4   11  13   15    18 8   9   17  21   28     9 14  16   18  20   25    10 19  22   23  24   27    21         :          : 【抽選結果シート】・・・VBA実行後、ボ数字の右側が自動計算される。 第1 第2 第3 第4 第5  ボ数字  差12 差23 差34 差45  差15 差123 差1234 差12345   1   2  5   6   7    21    1    3   1    1   6    13   131   1311 4  10  11  13  15    18    6    1   2    2   11   61   612   6122 8   9  17  21  28    9     1    8   4    7   20   18   184   1847 14  16  18  20  25    10    2    2   2    5   11   22   222   2225 19  22  23  24  27    21    3    1   1    3   8    31   311   3113 【注意事項】   1)差の計算ルールは下記のとおりです。尚、計算結果にマイナスは発生しません。       差12・・・・抽選結果シートの「第2-第1」です。       差23・・・・抽選結果シートの「第3-第2」です。       差34・・・・抽選結果シートの「第4-第3」です。       差45・・・・抽選結果シートの「第5-第4」です。       差15・・・・抽選結果シートの「第5-第1」です。    2)差123、差1234、差12345については下記のとおりです。      差123   ・・・ 「差12」と「差23」の結果を結合(and)したものです。      差1234  ・・・ 「差12」と「差23」と「差34」の結果を結合(and)したものです。      差12345 ・・・ 「差12」と「差23」と「差34」と「差45」の結果を結合(and)したものです。  3)使用しているエクセルは、エクセル2010です。  4)VBAは、抽選結果シートに結果が全て入力されていれば第1回抽選結果から最新抽選結果迄   の計算をします。  以上、ご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

はて。わざわざマクロなど使わなくても、各列に所定の数式を埋めておくだけですが。 A列に回数 B~G列に第1~ボ H~L列に差 M、N、O列に差の結合 1行目にタイトル行 2行目からデータ。 sub macro1()  dim lastRow as long  lastrow = range("A65536").end(xlup).row  range("H2:K" & lastrow).formula = "=ABS(C2-B2)"  range("L2:L" & lastrow).formula = "=ABS(G2-B2)"  range("M2:M" & lastrow).formula = "=(H2&I2)*1"  range("N2:N" & lastrow).formula = "=(M2&J2)*1"  range("O2:O" & lastrow).formula = "=(N2&K2)*1" ’通常は以下の細工は不要  with range("H2:O" & lastrow)  .value = .value  end with end sub

moguo4649
質問者

お礼

いつも回答頂きありがとうございます。 早速試してみようと思いますが、 コメントに、”通常は以下の細工は不要”とありますが、 その下に書かれているのを、実行するとしないのでは 何がちがうのですか?

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>早速試してみようと思いますが、 はて? 寄せられた回答を、実地に試してみることもしないで「お礼」を書いているのですか? でしたらまずそこから考え違いを直して、まずご自分の手を動かし実際にやってみてから、確かにうまく出来ましたなり意図したのと違うこういう結果になりましたなりを、返答なさるようにしてみてはいかがでしょう。 そういう中で、既に回答を差し上げてからずいぶん時間も経ちましたが、思いつきで「どうなりますか」と聞く前に実際にご自分でやってみて、するとしないでどう違うのか確認することも当然できたと思うのですが、あなたはどう思いますか? >するとしない 回答したように、わざわざマクロを使うまでもなく数式を用意しておけば結果を得られるご相談です。 いったいどんな式を用意すればよかったのか、わかるようになっています。

関連するQ&A