式の値に応じてラベルの行き先を変更する方法【ExcelVBA】
On GoSubステートメントでOn 式 GoSub 〇〇,△△,××とラベルを複数用意し
1であれば1個目の項目のラベルにいき、2であれば2個目の項目のラベルにいき、3であれば3個目の項目のラベルにいく形
前回のGoSubの値に応じて振り分けるパターン
0の場合はそのまま次のステートメントへ、255より大きい値や負の値の場合はエラーになる
今回はWorkSheetChangeのイベントプロシージャを使用し、シートの特定の箇所が変更されたら
その個所のLeftで左から1文字目を抜き出し、0,1,2,3でその値を変数に入れ、その値に応じて
行き先のラベルを振り分ける形で実践
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
'シート内が変更された時起動
Private Sub Worksheet_Change(ByVal Target As Range)
'シートのD11セルが変更されたら
If Target.Address = "$D$11" Then
Dim 選択項目 As Integer
選択項目 = Left(Range("D11").Value, 1)
On 選択項目 GoSub test1, test2, test3
End If
Exit Sub
test1:
'昇順に並び替える命令
Range("B2").CurrentRegion.Sort key1:=Range("C2"), _
order1:=xlAscending, Header:=xlYes
Return
test2:
'降順に並び替える
Range("B2").CurrentRegion.Sort key1:=Range("C2"), _
order1:=xlDescending, Header:=xlYes
Return
test3:
MsgBox "やったー"
Return
End Sub