- ベストアンサー
エクセルのマクロについて質問
- エクセルのマクロについて質問です。以前職場に居たIT講師の方が残していった抽選マクロなんですが、1度エクセルとは別のソフトで開いて同じ形式で上書き保存してしまったのですが、それ以来マクロが暴走してしまいます。
- 壊れたエクセルの抽選マクロを復元する方法について教えてください。
- エクセルの抽選マクロが暴走する問題について、原因とその解決策を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どう読んでも、暴走するようなコードでもありませんし、そのコードは記録マクロですが、いろんな点で、何かの間違いでは? I列は、乱数(=RAND() という式), J列は、4行目から、=RANK(I4,$I$4:$I$58) という式のはず。罫線が入っているので、罫線を除いてコピーしたところで、式自体をA列にコピーすれば、エラーになります。それに、ショートカット、CTRL+c なら、元のショートカットとぶつかります。 コピーするだけなら、このようにすればよいですが、 Sub 抽選2() Application.Calculate Range("A4:A58").Value = Range("J4:J58").Value End Sub >それによって当選マークがつくようになってました。 とは、どういうものでしょうか?
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
お話が見えてきません。 ある程度、ご自身で、VBAがお分かりになるのですか? 記録マクロをボタンにしても、Selection などが入っているものではうまくいくはずがありません。私の書いたコードと入れ替えてみて、ダメだったということですか? >ボタンではうまくいかないのですが、セルとセルの間をクリックすると乱数が変化してちゃんと動くようです。 だから、Caluculateを入れたのですが。
お礼
回答ありがとうございました。 えーと私自身エクセルが苦手で「初心者よりはマトモ」程度なのでマクロ&関数の勉強中で本を買ったりしてるんですが。 VBAというのはハッキリ言って全然分かりません。 でも指摘されたとおり入れ替えてみます。 仕事中に読んでの補足だったので、読み落としがあったようです。申し訳ありませんでした。
補足
ボタンを押すと乱数によって1位から55位まで決まって、その順位のうち10位までに条件付書式で「当選」とAのセルに表示されるようになってました。 暴走とはちょっと表現が違ったかもしれませんが、ボタンを押すとAのセルすべてに50と表示され、もう一度押すとセルが結合されたり入力していたものが消えたりするのです。 I4の数式が =RAND()*100 J4の数式が =RANK(I4,$I$4:$I$58,1) と書かれています。 ボタンではうまくいかないのですが、セルとセルの間をクリックすると乱数が変化してちゃんと動くようです。 なぜなんでしょうか??