アプリ版:「スタンプのみでお礼する」機能のリリースについて

使っているのエクセル2010です。
セルT2に以下の計算式が入っていて現在使っています
=IF(AND(M2>N2,N2>O2),MAX($K$6:K50)*2,"")
こういうのが1行あたり20列くらいあります
これをVBEに書きたいのです。 IF then とかAND単体の書き方はネットや手持ちの本で解るのですがセルの式でIFの中にANDとMAXが有り どう書いたらいいのか分かりません。
関数をVBAにできるかた上記の式をVBAに直してもらえますか。

A 回答 (5件)

それが適切なのかどうかはこの情報では判断できませんが



コピペで数式の貼付けをすれば何十列有っても手間では無いですけどね
    • good
    • 1

こんにちは



>単体の書き方はネットや手持ちの本で解るのですが
>セルの式でIFの中にANDとMAXが有り
>どう書いたらいいのか分かりません。
個々にわかるのなら、式の内容を分解して、順次処理を行えばよいのでは?
(もちろん、まとめて記述することも不可能ではありませんけれど)

式中の「M2」等のセル値の参照は、Range("M2").Value などに変換すれば良いです。
例えば、ご提示の式なら

 cond1 = Range("M2").Value > Range("N2").Value
 cond2 = Range("N2").Value > Range("O2").Value

 If cond1 And cond2 Then
  Range("T2").Value = Application.Max(Range("$K$6:k50")) * 2
 Else
  Range("T2").Value = ""
 End If

みたいな感じで。
    • good
    • 1
この回答へのお礼

IF(OR(A100="",A100="--------"),"",IF(AND(W100>=0,X100>=0,Z100>=0),1,IF(AND(W100<0,X100>=0,Z100>=0),2,......みたいに各セルに計算式が色々入っているという意味です。文書が稚拙で申し訳ございません。
こんな稚拙な文書でも回答くださりありがとうございます。関数からVBAにするときの書き方がこれで解ると思います。答えを見直しながら勉強させていただきます。

お礼日時:2023/10/10 13:10

if range("M2") > range("N2") and range("N2") > range("O2") then


range("場所")=application.worksheetfunction.max(range("$K$6:K50")*2
end if

テストはしていません
    • good
    • 0

if range("M2") > range("N2") and range("N2") > range("O2") then


range("場所")=application.worksheetfunction.max(range("$K$6:K50"))*2
end if


でした。
テストはしていません
    • good
    • 1
この回答へのお礼

1行での書き方 参考になります。application.max( の処が理解していないのでオブジェクトとして丸暗記することにしました。

お礼日時:2023/10/12 13:01

VBA を組むとき、例えば


欄外の列に
 =IF(AND(W100>=0,X100>=0,Z100>=0),1,0)
次の列に
 =IF(AND(W100<0,X100>=0,Z100>=0),2,0)
次の列に
 =IF(AND(W100<0,X100<0,Z100>=0),2,0)
などを入れて、更に条件分岐の計算式を入れてそれらに基づいて VBA を組んでいけば考えが整理できてうまく書くことができます。参考までに・・・。
    • good
    • 1
この回答へのお礼

自分の本にも同じ事が書いてありました 完全にわすれていました。
ありがとうございます。

お礼日時:2023/10/12 13:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A