• ベストアンサー

EXCEL あるセルに数字が入力されれば既存マクロ実行させたい

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

質問者が選んだベストアンサー

  • ベストアンサー
  • pamsd
  • ベストアンサー率18% (39/209)
回答No.1

Private Sub Worksheet_SelectionChange(ByVal Target As Range) if Range(ある位置) <>"" then call 既存のマクロ名 End Sub ある位置と既存のマクロ名を変更して使ってみてください。 あと このVBAは 操作するワークシートのほうに記述します。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

数字という箇所に拘ると 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に貼り付けても該当します。 値を空白に変えても該当します。 削除すると下のセルが文字列だと該当しません。数字だと該当します。(セル削除で、上に詰める場合) 結構色々考えると複雑です。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

単独セルの場合(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

関連するQ&A