|
返信遅くなり申し訳ございません。
シート2(売上伝票画面)のD12をダブルクリック→シート3(得意先コード)へ飛ぶ
シート2(売上伝票画面)のC20をダブルクリック→シート4(作業コード)へ飛ぶ
>>> それは出来ていると思います。
→やはりできないのですがなぜでしょうか。。
>>> 売上伝票のC20、C21、C22、C23、C24の5つをダブルクリックすると
>のところでしょう。
>Select Caseのヘルプをよく確認して下さい。
> Case "$C$20", "$C$21", "$C$22", "$C$23", "$C$24"
> Sheets(shName4).Activate
>のようにまとめて記述することができます。
→シート4には飛ばないのですが、
C20、C21、C22、C23、C24のいずれかをダブルクリックした後、
自分で手動でシートをシート4に移動すれば、シート4内のセルをダブルクリックすると
挿入&シート2に戻るようになりました!!
あとは一番初めにダブルクリックでシート4に飛べば完璧なのですが・・・
以下、今のコードです。
どこがおかしいかわかりますでしょうか。。
Dim ToCell As Range
Const shName1 As String = "はじめに"
Const shName2 As String = "売上伝票"
Const shName3 As String = "得意先コード"
Const shName4 As String = "作業コード"
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Sh Is Sheets(shName3) Then
If ToCell Is Nothing Then
MsgBox "先に転記先のセルをクリックしてから、このシートでダブルクリックしてください"
Exit Sub
End If
ToCell.Value = Target.Value
Application.Goto ToCell
Set ToCell = Nothing
ElseIf Sh Is Sheets(shName4) Then
If ToCell Is Nothing Then
MsgBox "先に転記先のセルをクリックしてから、このシートでダブルクリックしてください"
Exit Sub
End If
ToCell.Value = Target.Value
Application.Goto ToCell
Set ToCell = Nothing
ElseIf Sh Is Sheets(shName2) Then
Set ToCell = Target
Select Case Target.Address
Case "$D$12"
Sheets(shName3).Activate
Case "$C$20", "$C$21", "$C$22", "$C$23", "$C$24"
Sheets(shName4).Activate
End Select
End If
End Sub
|
|