MENU

【質問】日給を平日は1,000円、休日は1,200円で分岐させたい。(複数条件の処理)

VBA初心者でも、すぐエクセルの自動化ができます。

【質問】日給を平日は1,000円、休日は1,200円で分岐させたい。(複数条件の処理)

f:id:The-Alchemist:20220114145606p:plain

手順(関数の入力)

本アプリは、エクセル関数の”=if(~,"〇”,"×")”セルに入力します。

f:id:The-Alchemist:20220114150703p:plain

 

 

左は、数式を入力設定画面です。

 

 

 

 

・入力するセルを指定します。

 

 

 

 

・数式は、エクセルの左上のセルに作成し、アプリに貼り付けます。

(なお、コピーしたら、Escキーでコピーを解除して、アプリに貼り付けます)

・数式はで始めで囲みます。

・数式の中の文字列は文字列””とします。

 

 

 

 

 

表示されるコード

Sub デモ_1() '入力
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
セル範囲 = "e7:e7"
Range(セル範囲).Select
Call デモ_1_メイン処理(セル範囲)
End Sub
 
Sub デモ_1_メイン処理(セル範囲 As String)
Selection.Offset(0, 0).Formula = "=IF(C7=""平日"",1000,1200)"
End Sub

【参考】VBAの分岐コード

Sub デモ_2()
If Range("C7").Value = "平日" Then
    Range("E7").Value = 1000
Else
    Range("E7").Value = 1200
End If
End Sub

VBAは5行ですが、数式では、Selection.Formula = "=IF(C7=""平日"",1000,1200)"の1行です。また、VBAで分岐させるには、VBAを習得する必要があります。

条件で書式を変更する場合

なお、条件で書式変更するときは、①Excel機能の条件付き書式を使うか、②本アプリの「書式」で、”~であるとき”と”~でないとき”の、条件分岐を2つ作成します。

条件が複雑な場合

また、条件が複雑なときは、【3】処理する条件を選択の末尾にある”Rangeオブジェクト変数「セル」で、下に自作”を選択できます。この「セル」は、アプリで作成されるコードで宣言済みのRangeオブジェクト変数です。

たとえば、

セル.Value = "平日" 

と自作しアプリに設定できます。

f:id:The-Alchemist:20220114161636p:plain

 

 

条件分岐の結果を入力するのは、E7セルですが、条件分岐させるセルは”平日”があるC7セルです。

 

 

 

Rangeオブジェクト変数「セル」で、下に自作”します。

 

 

 

条件に一致したら、E7セルに入力する数字です。

 

 

 

条件分岐の条件のC7セルから、右に2つOffsetしたE7セルに数字を入力します。

 

下記コードが作成されます。

Sub デモ_3()  '入力
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
セル範囲 = "c7:c7"
'◆条件分岐
For Each セル In Range(セル範囲).Cells
 If セル.Value = "平日" Then
   セル.Select
   Call デモ_3_メイン処理(セル範囲)
  End If
Next
End Sub
 
Sub デモ_3_メイン処理(セル範囲 As String)
Selection.Offset(0, 2).Formula = 1000
End Sub

 

アプリはこちらから↓↓↓↓