- 締切済み
関数をVBAで知りたい
300ぐらいのセルに関数で計算をしているのですが、時間がかかって仕方ありません。次の関数をVBAに直して頂けませんか 質問1:表示したいセルはRange("AD98")です =IF(AND(COUNT(OFFSET(AC98,1-AD$8,0):AC98)<>AD$8),"",IF(AND(COUNT(OFFSET(AC98,1-AD$8,0):AC98=AD$8,AD97=""),AVERAGE(OFFSET(AC98,1-AD$8,0):AC98),IF(COUNT(AD97=1),AD97+2/(AD$8+1)*(AC98-AD97)))) 質問2:表示したいセルはRange("AC98")です =IF(AND(COUNT(AA98)=1,COUNT(AB98)=1),AA98-AB98,"") よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wein1982
- ベストアンサー率25% (1/4)
絶対参照というのはどのセルを選択していても決まったセルに対してマクロを実行するもので、例の場合は式を入力するセルが決まっているので絶対参照がいいかなと思いました。 AD98ではなく選択しているセルに同じ式を入れたいのでしたら、相対参照でOKです。ちなみにマクロの記録を始めにするときは絶対参照になっているので特に何もする必要はありません。 マクロ名:何でもいいです ショートキー:省略可。 マクロの保存先:個人用マクロブック(なかったら作ってください) こんな感じでいかがでしょうか。
- wein1982
- ベストアンサー率25% (1/4)
質問1の式を貼り付けたらエラーでしたけど式は合っていますか? あらかじめ式を記入し、"AD98"(1の場合)を選択した状態で ツール→マクロ→新しいマクロの記録 で絶対参照にして F2キー→Enterキー を押せば望みのVBA式が記録されると思います。
補足
ありがとうございます。 絶対参照について教えてください。Windows XPですが同じですか ツール→マクロ→新しいマクロの記録で窓が出てきて絶対参照にするにはどうすればいいのでしょうか マクロ名: ショートキー: マクロの保存先: などが出てきます。 よろしくお願いします。
補足
ありがとうございます できました。ただ、式ではなく答えをセルに入れたんのですがそういったことできますか、といいますのはその答えを次のようにコピーしたいので Sheets("XXX").Range("V10:AD98").Copy Destination:=Sheets("XXX").Range("V9") AD98の答えを順番に上に上げていきます。 よろしくお願いします