【至急助けて下さい!!】VBAでのIF関数挿入
VBA初心者です。上級者の方助けてください。
VBAで入力セルを消去後、IF関数をN列に挿入したいです。
挿入したいIF関数のところが解決できればあとの記述はなんとかなります。
■挿入したいIF関数
=IF(M4=$Y$5,$Z$9,IF(M4=$Y$6,$Z$9,IF(M4=$Y$7,$Z$9,IF(M4=$Y$8,$Z$6,IF(M4=$Y$9,$Z$10,IF(M4=$Y$10,$Z$9,IF(M4=$Y$14,$Z$7,IF(M4=$Y$15,$Z$8,""))))))))
他関数は下記構文でうまくいくのですが、
IF関数はどのように記述したらよろしいでしょうか。
■他
ws.Cells(i, jig_col).Value = "=VLOOKUP(F" & i & ",Sheet1!$A$2:$C$358,2,0)"
■現在の記述
Dim ws As Worksheet
Dim endrow As Long
Dim endcol As Long
Dim you_col As Integer
Dim gak_col As Integer
Dim jig_col As Integer
Dim bc_col As Integer
Dim chg_col As Integer
Dim i As Long
'確認メッセージを表示し、「NO」の場合は処理を行わない
If MsgBox("入力されている内容をクリアします。よろしいですか?", vbYesNo) = vbNo Then
Exit Sub
End If
'画面の更新を行わない
Application.ScreenUpdating = False
Set ws = ThisWorkbook.Sheets("シンフォームイレギュラー運用状況")
'呼び出し元シートの最終行、最終列を取得する
endrow = ws.Cells(ws.Rows.Count, 6).End(xlUp).Row
endcol = ws.Cells.Find(What:="変更フラグ", LookIn:=xlValues, LookAt:=xlWhole).Column - 2
If endrow < 4 Then Exit Sub
ws.Range(ws.Cells(4, 1), ws.Cells(endrow, endcol)).ClearContents
you_col = ws.Cells.Find(What:="曜日", LookIn:=xlValues, LookAt:=xlWhole).Column
gak_col = ws.Cells.Find(What:="学年", LookIn:=xlValues, LookAt:=xlWhole).Column
jig_col = ws.Cells.Find(What:="事業所", LookIn:=xlValues, LookAt:=xlWhole).Column
'bc_col = endcol - 1
'chg_col = endcol
For i = 4 To endrow
ws.Cells(i, you_col).Value = "=B" & i
ws.Cells(i, gak_col).Value = "=VLOOKUP(F" & i & ",Sheet1!$A$2:$C$358,3,0)"
ws.Cells(i, jig_col).Value = "=VLOOKUP(F" & i & ",Sheet1!$A$2:$C$358,2,0)"
'ws.Cells(i, bc_col).Value = "=IFERROR(MID(H" & i & ",LEN(H" & i & ")-1,1), "")"
'ws.Cells(i, chg_col).Value = 0
ws.Range("W" & i).Value = 0
Next
'画面の更新を行う
Application.ScreenUpdating = True
End Sub
お礼
ありがとうございました。ListBox商品名.ListFillRange = BBB & ":" & DDD で解決しました。 つまり、文字列を接続する演算子が分からなかったみたいでした。 ちょっとした事だったんだけど、助かりました。もっと勉強していきます。