質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

266閲覧

マクロで条件分岐させる

yamaji

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/07/21 23:44

VBA Aの条件で「大」を表示 AからBに条件が変化したときが「中」表示に変化させるVBAを考えています。
下記を参考に考えましたがうまく行きません。どのような方法がBESTがおしえていただきますでしょうか?
例1
Sub AND演算子のサンプル1()
If Range("A1").Value >=70 And Range("A1").Value <= 85 Then
Range("B1").Value = "B"
End If

End Sub
「Range("A1").Value >=70」という条件と
「Range("A1").Value <= 85」という条件の間に
And演算子を書いて、
If Range("A1").Value >=70 And Range("A1").Value <= 85 Then
とします。

例2
Select Case True
Case Range("A1").Value >= 1 And Range("A1").Value < 2, Range("A1").Value = 0
'≪「1以上2未満」 又は、0のとき≫
'処理
Case Range("A1").Value >= 2 And Range("A1").Value < 3
'≪「2以上3未満」≫
'処理
End Select

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2017/07/22 02:28

質問の最初の1行が希望のことだ思いますが、論理的な日本語になってません。具体的な例をだして、論理的にどうしたいのか説明してください。
guest

回答1

0

ベストアンサー

たどたどしい日本語ですが、海外の方なのかな?
日本語って難しいですよね。
私は日本人ですが日本語が苦手なので、アドバイスがうまく伝わればよいのですが。

If文

If文は以下のような記述で複数の条件を記述できます。

If 条件A Then 処理A ElseIf 条件B Then 処理B ElseIf 条件C Then 処理C Else 処理Z End If

条件に一致したところで該当する処理が行われ、以降の条件判定はスルーされます。

Dim x As Long x = Cells(1, "A").Value If x > 85 Then '条件A '処理A Cells(1, "B") = "大" ElseIf x > 75 Then '条件B '処理B Cells(1, "B") = "中" ElseIf x > 0 Then '条件C '処理C Cells(1, "B") = "小" Else 'どの条件も満たさない場合 '処理Z Cells(1, "B") = "なし" End If

Case文

Case文は一致条件で使うことが多いですが、Isを使うことで比較演算子も利用できます。
If文と同様、条件に一致したところで該当する処理が行われ、以降の条件判定はスルーされます。

Dim x As Long x = Cells(1, "A").Value Select Case x Case Is > 85 '条件A '処理A Cells(1, "B") = "大" Case Is > 75 '条件B '処理B Cells(1, "B") = "中" Case Is > 0 '条件C '処理C Cells(1, "B") = "小" Case Else 'どの条件も満たさない場合 '処理Z Cells(1, "B") = "なし" End Select

また、以下のように範囲で記述する方法もあります。

Dim x As Long x = Cells(1, "A").Value Select Case x Case Is > 85 '条件A '処理A Cells(1, "B") = "大" Case 75 To 85 '条件B '処理B Cells(1, "B") = "中" Case 1 To 75 '条件C '処理C Cells(1, "B") = "小" Case Else 'どの条件も満たさない場合 '処理Z Cells(1, "B") = "なし" End Select

参考になれば幸いです。

投稿2017/07/24 03:28

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問