[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2つのVBAを動かしたいとき』(SHIN)
VBA初心者です。
EXCELで2つのVBAを何とか作成しましたが2つ同時に記載すると動きません。
1つづつのVBA単体ですとちゃんと動作するので内容は間違ってないと思うのですがどこがいけないのでしょうか
1.ファイルを閉じるとき必要な入力がされていない場合、アラートを
だすVBA
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim cell1 As Range
Dim msg As String
Dim addStr As String
msg = "未選択項目があります:"
addStr = "を選択してください。"
For Each cell1 In ActiveSheet.Range("必須項目")
If cell1.Value = "選択してください" Then
msg = msg & vbCrLf & cell1.Offset(, -1).MergeArea(1).Value & addStr
End If
Next
If InStr(msg, addStr) Then
MsgBox msg, vbInformation
Cancel = True
End If
End Sub
2.特定のセルで入力を促すよう未入力の場合、文字が入力されているVBA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const myWd As String = "123"
With Range("W51")
If Not Intersect(Target, Range("W51")) Is Nothing Then
If Target = myWd Then
Target = ""
.Font.ColorIndex = 0
End If
Else
If .Value = "" Then
.Value = myWd
.Font.ColorIndex = 16
End If
End If
End With
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(nn) 2022/01/11(火) 17:06
Workbook_BeforeClose はThisWorkbookに、
Worksheet_SelectionChange は該当のWorkSheetに
記載してあるで正しいですか?
(tkit) 2022/01/11(火) 17:07
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const myWd As String = "123"
With Range("W51")
If Not Intersect(Target, Range("W51")) Is Nothing Then
If Target = myWd Then
Target = ""
.Font.ColorIndex = 0
End If
Else
If .Value = "" Then
.Value = myWd
.Font.ColorIndex = 16
End If
End If
End With End Sub
インデントの方法もわからないかもしれない、と思いこちらでつけました。
何か気づきませんか
(参考) 2022/01/11(火) 18:03
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const myWd As String = "承認日"
With Range("W51")
If Not Intersect(Target, Range("W51")) Is Nothing Then
If .Value = myWd Then
.Value = ""
.Font.ColorIndex = 0
End If
Else
If .Value = "" Then
.Value = myWd
.Font.ColorIndex = 16
End If
End If
End With
End Sub
(SHIN) 2022/01/12(水) 14:49
単純に、3つ書けばよろしいかと思います。
(With ・・・ から End With までを3つ)
それでは芸が無いということであれば、
「Range("W51")」と指定してあるところを変数で指定するようにして、
変数を変更しながらループすればよろしいかと思います。
(わからん) 2022/01/12(水) 15:09
>2つ同時に記載すると動きません。
>1つづつのVBA単体ですとちゃんと動作する
一度状況を整理されてはどうでしょう?
(tkit) 2022/01/12(水) 15:33
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.