|
いつもお世話になっています。
たくさんの人が使うエクセルファイルで例えばA3の所に佐藤と入力してシートが開き、鈴木と入力してシートが開かないようにコードを作成したいのですがそのことは可能でしょうか?自分なりにシートを変更するコードを作成しましたがうまくいきません。
このコードをステップ実行で行っても、3行いったりきたりするだけです。
Private Sub Worksheet_Change(ByVal Target As Range)
Set abc = Range("A3")
abc.Value = "佐藤" ←ここに名前を並べても実行しなかったので、
上記のコードとは別にChoose関数を使い下記のコードを作成しました。セルにChoose関数の中に明記されてある森をセルA3に入力するとエラー表示され、このシートのセルのカーソルを移動する際名前がみつかりませんと表示され、このシート毎消えてしまいます。
NewSheet.Deleteがあるから消えるというのはわかりますが、カーソルを移動
した時なぜ名前がみつかりませんと表示されるのかわかりません。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim getchoice
Dim NewSheet As Worksheet
On Error GoTo ryou
Set NewSheet = Sheets(2)
Set tommy = Range("A3")
getchoice = Choose(tommy, "佐藤", "田中", "森")
Exit Sub
ryou:
If Err.Number = 13 Then
Msg = "名前がみつかりません"
MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
Application.DisplayAlerts = False
NewSheet.Delete
Application.DisplayAlerts = True
On Error Resume Next
End
End If
End Sub
|
|