いつもありがとうございます。

EXCEL VBAで質問です。

関数が混在した以下の数式を、指定セルに入力するVBAの記述をお教えください。

A1セルに以下の数式を入力します。

=IF(B15-B16=0,"現金の過不足はありません",IF(B15-B16<0,"現金が"&TEXT(ABS(B15-B16),0)&"円超過しています","現金が"&TEXT(B15-B16,0)&"円不足しています"))


コードをずばりご教授ください。

どうぞよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/06/29 15:49:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.4

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

あ、数式を入れるだけなんですね

Range("A1") = "=IF(B15-B16=0,""現金の過不足はありません"",IF(B15-B16<0,""現金が""&TEXT(ABS(B15-B16),0)&""円超過しています"",""現金が""&TEXT(B15-B16,0)&""円不足しています""))"


で "は ""にすればいいだけです。

id:kitatom

りょうかいです。いつもすみません。。。ありがとうございました。

2006/06/29 15:46:26

その他の回答5件)

id:gong1971 No.1

回答回数451ベストアンサー獲得回数70

ポイント50pt

以下の記述でOKです。こういった場合は記録マクロが便利ですね。

Range("A1").FormulaR1C1 = _
    "=IF(R[14]C[1]-R[15]C[1]=0,""現金の過不足はありません"",IF(R[14]C[1]-R[15]C[1]<0,""現金が""&TEXT(ABS(R[14]C[1]-R[15]C[1]),0)&""円超過しています"",""現金が""&TEXT(R[14]C[1]-R[15]C[1],0)&""円不足しています""))"
id:kitatom

激速のレスポンスありがとうございます。できれば相対参照ではなく、絶対参照がよいのですが、再送いただけますでしょうか?

2006/06/29 15:40:06
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント50pt

If Range("B15") - Range("B16") = 0 Then

Range("A1") = "現金の過不足はありません"

Else

If Range("B15") - Range("B16") < 0 Then

Range("A1") = "現金が" & Abs(Range("B15") - Range("B16")) & "円超過しています"

Else

Range("A1") = "現金が" & (Range("B15") - Range("B16")) & "円不足しています"

End If

End If


となります。

id:kitatom

いつもありがとうございます!質問の仕方がまずかったのかもしれません。すみません。質問の意図は、「関数を含んだ任意の式を、セルに入力する」という意味でした。

2006/06/29 15:42:11
id:ootatmt No.3

回答回数1307ベストアンサー獲得回数65

ポイント50pt

絶対参照なら、

Range("A1").FormulaR1C1 = _

"=IF(R15C2-R16C2=0,""現金の過不足はありません"",IF(R15C2-R16C2<0,""現金が""&TEXT(ABS(R15C2-R16C2),0)&""円超過しています"",""現金が""&TEXT(R15C2-R16C2,0)&""円不足しています""))"

こんな感じ。

id:kitatom

なるほど、ありがとうございます。”R15C2”の部分は、Rangeを利用して、「B15」という形式での記述はできないのでしょうか?

2006/06/29 15:45:52
id:taknt No.4

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

ポイント50pt

あ、数式を入れるだけなんですね

Range("A1") = "=IF(B15-B16=0,""現金の過不足はありません"",IF(B15-B16<0,""現金が""&TEXT(ABS(B15-B16),0)&""円超過しています"",""現金が""&TEXT(B15-B16,0)&""円不足しています""))"


で "は ""にすればいいだけです。

id:kitatom

りょうかいです。いつもすみません。。。ありがとうございました。

2006/06/29 15:46:26
id:gong1971 No.5

回答回数451ベストアンサー獲得回数70

ポイント50pt

追記です。もし、R1C1形式だと分かりにくいなぁ...という事であれば、

下記の記述でもOKです。ポイントとして、""内で"を使用する場合は、

""と重ねる必要があります。よって作成した数式をエディタなどで

" → "" と置換し、両端を""で括り、Formulaプロパティで数式を代入します。

Range("A1").Formula = _
    "=IF(B15-B16=0,""現金の過不足はありません"",IF(B15-B16<0,""現金が""&TEXT(ABS(B15-B16),0)&""円超過しています"",""現金が""&TEXT(B15-B16,0)&""円不足しています""))"

という事ではなく、絶対参照でという事であれば...

'A1形式
Range("A1").Formula = _
    "=IF($B$15-$B$16=0,""現金の過不足はありません"",IF($B$15-$B$16<0,""現金が""&TEXT(ABS($B$15-$B$16),0)&""円超過しています"",""現金が""&TEXT($B$15-$B$16,0)&""円不足しています""))"

もしくは...

'R1C1形式
Range("A1").FormulaR1C1 = _
    "=IF(R15C2-R16C2=0,""現金の過不足はありません"",IF(R15C2-R16C2<0,""現金が""&TEXT(ABS(R15C2-R16C2),0)&""円超過しています"",""現金が""&TEXT(R15C2-R16C2,0)&""円不足しています""))"
id:kitatom

詳しいご説明恐縮です。ありがとうございました。

2006/06/29 15:46:54
id:llusall No.6

回答回数505ベストアンサー獲得回数61

ポイント50pt

VBAのコードはご覧のとおりなのですが、


マクロの記録を使えば、とても便利だと思いますよ!

1.メニューバーより、[ツール]-[マクロ]-[新しいマクロの記録]でOKを押す。

2.数式をセルに入力する。

3.VBのエディターの標準モジュールを見れば、VBAのコードが作成されています。



Range("A1").FormulaR1C1 = _

"=IF(R[14]C[1]-R[15]C[1]=0,""現金の過不足はありません"",IF(R[14]C[1]-R[15]C[1]<0,""現金が""&TEXT(ABS(R[14]C[1]-R[15]C[1]),0)&""円超過しています"",""現金が""&TEXT(R[14]C[1]-R[15]C[1],0)&""円不足しています""))"

id:kitatom

そうですね。このように作成すればよかったのだと思います。またご厄介になると思いますので、その際はよろしくお願いします!

2006/06/29 15:48:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません