B列のグループによってC列の人を変えたい
マクロなしは前記事参照
snack.elve.club
これをマクロで記録して整頓すると
Sub Macro1() '名前を付ける Range("H1:H5,I1:I4,J1:J6,K1:K7,L1:L5").CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False 'B列リスト設定 Range("B2:B6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=グループ" End With 'C列リスト設定 Range("C2:C6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=INDIRECT(B2)" End With Range("B2").Select End Sub
これ実行するとエラーになりますん( ノД`)シクシク…
C列にB列で指定した範囲を見てね、ってやってるので空欄だと死ぬわけですな・・・。
回避方法が分からなかったので、未定義という空欄の範囲を追加しました( ノД`)シクシク…
Sub Macro1() '名前を付ける Range("G1:G2,H1:H5,I1:I4,J1:J6,K1:K7,L1:L5").CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False 'B列リスト設定 Range("B2:B6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=グループ" End With Range("B2:B6") = "未定義" 'C列リスト設定 Range("C2:C6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=INDIRECT(B2)" End With Range("B2").Select End Sub
もっといい方法があったら教えてください(´・ω・`)