|
▼よろずや さん:
>現在どんなコードを書いてるのか正確に書いてないと、
>こちらでは想像で回答することになります。
>
>多分的外れになると思うので、とりあえず書きません。
ご指摘ありがとうございます。
コードが多いので抜粋して該当する処理部分だけ書きます。
-----セルの式-------
(Sheet1のG13に対し)
=func_A()
-----VBAコード-------
-----Public変数------
Public gblFlag As Boolean
-----Public関数------
Public Function func_A() As String
Dim strName As String
If (Not (gblFlag)) Then
Application.Volatile
gblFlag = True
End If
strName = Application.ThisWorkbook.Name
func_A = Left(strName, 8)
End Function
-----Bookイベントプロシージャ-----
Private Sub Workbook_Open()
Me.Worksheets(Sheet1).Range("G13").Dirty
End Sub
-----Sheet1イベントプロシージャ-----
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ColNo As Long
Dim RowNo As Long
Dim strName As String
' エラートラップ
On Error GoTo EXT
' 変更されたセルの位置を取得する
ColNo = Target.Column
RowNo = Target.Row
If (RowNo = 11 And ColNo = 7) Then
If (IsEmpty(Me.Cells(RowNo, ColNo))) Then
strName = ""
Else
strName = Me.Cells(RowNo, ColNo).Value
End If
If ( strName <> "" ) Then
With ThisWorkbook
If ( strName = "2" ) Then
.Worksheets("Sheet2").Visible = True
.Worksheets("Sheet3").Visible = False
.Worksheets("Sheet4").Visible = False
Else
.Worksheets("Sheet2").Visible = False
.Worksheets("Sheet3").Visible = True
.Worksheets("Sheet4").Visible = True
End If
End With
End If
End If
EXT:
If (Err.Number <> 0) Then
Call MsgBox(Err.Description)
End If
End Sub
|
|