「これはヤバかったな」という遅刻エピソード

ボタン等のグラフィックオブジェクトのマクロ実行は簡単なのですが、
ある位置のセルにデーターが入力されれば、
既存のマクロを自動実行させることできますか?

A 回答 (3件)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)


if Range(ある位置) <>"" then call 既存のマクロ名
End Sub

ある位置と既存のマクロ名を変更して使ってみてください。
あと このVBAは 操作するワークシートのほうに記述します。
    • good
    • 41

数字という箇所に拘ると


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And IsNumeric(Target) = True Then
MsgBox "aaa" 'call xxx
End If
End Sub
ただし
(1)書式設定を 文字列で 12 や 12
(2)書式標準 123
などがOKになります。
またコピーしてA1に貼り付けても該当します。
値を空白に変えても該当します。
削除すると下のセルが文字列だと該当しません。数字だと該当します。(セル削除で、上に詰める場合)
結構色々考えると複雑です。
    • good
    • 11

単独セルの場合(A1セル)


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Call マクロ名
End Sub

列固定の場合(A列)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Call マクロ名
End Sub

行固定の場合(2行目)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 2 Then Call マクロ名
End Sub

範囲指定の場合(A2:A30)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
 If Target.Row >= 1 And Target.Row <= 30 Then
  Call マクロ名
 End if
End If
End Sub

飛び地の場合(A2,B7,C11)
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$2","$B$7","$C$11"
Call マクロ名
End Select
End Sub
    • good
    • 19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A