[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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を利用してみようを思うてはるんかも しれまへんなぁ。
ほな...(弥太郎)
レスが遅れました。 皆さん、色々な回答をありがとうございました。 これを利用して目的のマクロの一部が作成できました。 (ケンのぱぱ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.