いつもこちらの識者の方々にはお世話になっています。
VBAの質問です。
やりたいことは下記構文を見ていただければわかると思うのですが、
------------------------------------------------------------------------------
Sub Test()
Dim f As Long
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For f = lRow To 2 Step -1
If Cells(f, 2).Value = "りんご" Then
Cells(f, 2).EntireRow.Delete
Else
Cells(f, 2).Value = Cells(f, 2) & "0" & Cells(f, 3)
Cells(f, 18).Value = If Cells(f, 4).value = 1 Then Cells(f, 13) Else Cells(f, 14) Endif
End If
Next f
End Sub
------------------------------------------------------------------------------
Cells(f, 18).Value = If Cells(f, 4).value = 1 Then Cells(f, 13) Else Cells(f, 14) Endif
の部分が解決したい部分になります。
IFで条件分岐したあとの処理にさらにIFで分岐を加えたいのですが、無茶だと思いつつやってみたらやはり通りませんでした。
こういうのはなんというのでしょうか、ネストとも違うと思うのですが・・・
上記のような場合、どのような構文が適していますでしょうか。
No.2ベストアンサー
- 回答日時:
> Cells(f, 18).Value = If Cells(f, 4).value = 1 Then Cells(f, 13) Else Cells(f, 14) Endif
こういう場合は、三項演算子を利用します。
Cells(f, 18).Value = IIf(Cells(f, 4).value = 1, Cells(f, 13), Cells(f, 14))
三項演算子を2つも3つも組み合わせて利用することも可能です。
ex)
IIf(value = 1, "a", IIf(value = 2, "b", "c"))
No.1
- 回答日時:
「if」の中に「if」っていうのはよく使いますよ。
この場合には
Sub Test()
Dim f As Long
Dim lRow As Long
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For f = lRow To 2 Step -1
If Cells(f, 2).Value = "りんご" Then
Cells(f, 2).EntireRow.Delete
Else
Cells(f, 2).Value = Cells(f, 2) & "0" & Cells(f, 3)
If Cells(f, 4).value = 1 Then
Cells(f, 18).Value = Cells(f, 13)
Else
Cells(f, 18).Value = Cells(f, 14)
end if
End If
Next f
End Sub
が正しいですね!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
outlookのメールが固まってしま...
-
英数字のみ全角から半角に変換
-
Officeを開くたびの「再起動メ...
-
Microsoft Formsの「個人情報や...
-
会社PCのメールが更新されない
-
大学のレポート A4で1枚レポー...
-
teams設定教えて下さい。 ①ビデ...
-
VBAで横データを縦データに変換...
-
複数の写真を1枚に印刷
-
エクセルでXLOOKUP関数...
-
エクセルにおいて品名コードを...
-
EXCELのセルへの色づけ
-
Office2021を別のPCにインスト...
-
エクセルでレーダーチャートの...
-
office365って抵抗感ないですか?
-
エクセルのシフト表を簡単にGoo...
-
WEBの記事を印刷する際にA...
-
vb.net オブジェクト指向につい...
-
Office 2021 Professional Plus...
-
何文字超えたファイルだけを抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
横にコピーするマクロを教えて...
-
UWSCを使用して、ドロップダウ...
-
EXCELカレンダー出勤日黒色、休...
-
バイトを変換するスクリプト
-
【VBA】 IFの中にIF
-
true lifeの意味
-
強調構文について It is only a...
-
HTML ドロップダウンメニ...
-
条件に一致するデータの平均 ...
-
ホームページの資料請求フォー...
-
英文の和訳をお願い
-
excel vba
-
英→和訳助けて下さい!!!
-
Excel、変数4つの和が25になる...
-
RGBを色コードに
-
MT4 直前の足の四本値 つづき
-
この専門用語の意味は?
-
この「of」の用法、意味不明です。
-
VBAマクロ実行時エラーの修正に...
-
エクセル マクロ オートフィ...
おすすめ情報