『IF文で2以上9以下を指定したい』(ケンのぱぱ) IF文で条件式を2以上9以下と表現したいのですが、良く分かりません。 これをVBAで書ければ、一番良いのですが.... 入力判定値 1〜12。 入力セル  A1。 計算式....  1の時は、B1=A1+1です。  2〜9の時は、B1=A1+2です。  10の時は、B1=A1+3です。  11から12の時は、B1=A1−2です。 何方か、ご教授願います。 ---- ↓こういうことでしょうか? Sub test2() Dim myNo As Integer myNo = Cells(1, 1).Value If myNo = 1 Then Cells(1, 2).Value = myNo + 1 ElseIf myNo <= 9 Then Cells(1, 2).Value = myNo + 2 ElseIf myNo = 10 Then Cells(1, 2).Value = myNo + 3 ElseIf myNo <= 12 Then Cells(1, 2).Value = myNo - 2 Else Cells(1, 2).Value = Null End If End Sub   IF文ではありませんが↓こういうのもありそうです。 Sub test() Dim myNo As Integer myNo = Cells(1, 1).Value Select Case myNo Case 1 Cells(1, 3).Value = myNo + 1 Case 2 To 9 Cells(1, 3).Value = myNo + 2 Case 10 Cells(1, 3).Value = myNo + 3 Case 11 To 12 Cells(1, 3).Value = myNo - 2 Case Else Cells(1, 3).Value = Null End Select End Sub  (マーヤ) ---- マーヤさん横レスゴメンなはれや。 衝突して先越されましたなぁ。(笑) 折角やから VBAでもシートチェンジを使う方法とユーザー関数を使う方法がありますワ。 別にVBAを使わんでも関数で充分こなせますけど? 1)Sheet1モジュールにコピペ (Sheetのチェンジイベントを利用する方法) '------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address <> "$A$1" Then Exit Sub With Range("b1") Select Case Target Case 1 .Value = Target + 1 Case Is < 10 .Value = Target + 2 Case 10 .Value = Target + 3 Case 11, 12 .Value = Target - 2 Case Else .Value = "" End Select End With End Sub 2)標準モジュールにコピペ (ユーザー関数を利用する方法) '----------------------- Function baba(data) Select Case data Case 1 baba = data + 1 Case Is < 10 baba = data + 2 Case 10 baba = data + 3 Case Is < 13 baba = data - 2 End Select End Function こっちは関数と同じでケンのばばさんの例で申し上げるとB1に=baba(a1)と入力 すれば結果がちゃんと報告されますワ。 2個テストするんやったらC1に入力してもよろしいなぁ。 babaは適当に変更して貰うても構いまへんでぇ。(笑)     ほな...(弥太郎) ---- しまった〜 今日は弥太郎さんがおられたのですね? >衝突して先越されましたなぁ。(笑) もうちょっと時間をおいとけば、稚拙なコードをさらさずにすんだのに(^^;) では、(^^)/~ (VBA入門中のマーヤより) ---- 整数値で返る値が決まっているのなら B1へ下記が一番シンプルじゃないかなぁ。 =IF(A1,CHOOSE(A1,2,4,5,6,7,8,9,10,11,13,9,10),"") (KAMIYA) ---- >稚拙なコードをさらさずにすんだのに んな事はおまへんワ。 私の持論として人目に触れる関数とちゃいましてVBAはあくまで裏方の 仕事ですさかい、要するにちゃんと動いて、且つ思い通りの結果が出せたらええ訳で して、見栄えなんてどうでもええと思うてまんねんで、えぇ。 せやから、ほんなことは一切気ぃになりまへんワ。 どんどんレスつけたっておくんなはれや。      KAMIYAはん、おはようございます。 そうでっしゃろ?関数で充分ですわなぁ。 VBAをご所望と言うからには、これからVBAを手ぇの中に入れようって寸法か、もしくは 実際にはもっと複雑な条件が重なるんでVBAを利用してみようを思うてはるんかも しれまへんなぁ。       ほな...(弥太郎) ---- レスが遅れました。 皆さん、色々な回答をありがとうございました。 これを利用して目的のマクロの一部が作成できました。 (ケンのぱぱ)