|
▼taka さん:
>ありがとうございます どうしても上手くうごきません・・・・。
うまく動かないとは具体的にどうなってしまうのでしょうか?
Jakaさんのコードにコメント+エラー出力を入れました。
これで理解してみてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim st As String
' 対象となるセルは"A1"だけ
If Target.Address(0, 0) = "A1" Then
' セルの値が数字である場合
If IsNumeric(Target.Value) Then
' セルの値が 1〜50 の場合
If Target.Value > "0" And Target.Value <= "50" Then
' セルの値を取得
st = Target.Value
' B1を変更するのでChangeイベントを起こさないようにする
Application.EnableEvents = False
On Error Resume Next
' B1に A1 の値をシート名に持つシートの B1 の値を入れる
Range("B1").Value = Sheets(st).Range("B1").Value
If Err.Number <> 0 Then
MsgBox "'" & st & "'ってシートないやんけ。"
End If
On Error GoTo 0
' Changeイベントのイベントを抑制したのを元に戻す
Application.EnableEvents = True
Else
MsgBox "1〜50の値じゃないやん。"
End If
Else
MsgBox "数字じゃないやん。"
End If
End If
End Sub
|
|