[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.