Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


247 / 13645 ツリー ←次へ | 前へ→

【81324】エラーが表示されたらBeep音で知らせる pollock 20/6/4(木) 13:41 質問[未読]
【81326】Re:エラーが表示されたらBeep音で知らせる BJ 20/6/4(木) 18:08 発言[未読]
【81327】Re:エラーが表示されたらBeep音で知らせる pollock 20/6/4(木) 18:24 質問[未読]
【81329】Re:エラーが表示されたらBeep音で知らせる BJ 20/6/4(木) 22:45 発言[未読]
【81330】Re:エラーが表示されたらBeep音で知らせる pollock 20/6/5(金) 8:45 質問[未読]
【81332】Re:エラーが表示されたらBeep音で知らせる BJ 20/6/5(金) 10:15 発言[未読]
【81333】Re:エラーが表示されたらBeep音で知らせる BJ 20/6/5(金) 10:29 発言[未読]
【81334】Re:エラーが表示されたらBeep音で知らせる BJ 20/6/5(金) 10:35 回答[未読]
【81335】すみません。誤字修正 BJ 20/6/5(金) 10:37 発言[未読]
【81341】Re:エラーが表示されたらBeep音で知らせる pollock 20/6/5(金) 14:14 お礼[未読]

【81324】エラーが表示されたらBeep音で知らせる
質問  pollock  - 20/6/4(木) 13:41 -

引用なし
パスワード
   AE行に入力した際に、X行にエラー表示「***」が表示された場合にのみ音を出すマクロを作っています。
以下の様に書いてみたのですが、上手くいきません。
「プロシージャの呼び出し、または因数が不正です。」と出てしまうのですが理由が分かりません。
どなたかお知恵をお貸しください。

Sub エラー検知()
  Dim error1 As Range, cc As Range, Target As Range
  If Not Intersect(Target, Range("AE17:AE116")) Is Nothing Then
    For Each cc In Intersect(Target, cc)
    If cc.Offset(, -7).Value = "***" Then
      Call Melody
    End If
    Next
  End If
End Sub

Sub Melody()
Dim num As Integer, i As Integer
num = InputBox("1")
For i = 1 To num
  Beep
Next i
End Sub

【81326】Re:エラーが表示されたらBeep音で知らせる
発言  BJ  - 20/6/4(木) 18:08 -

引用なし
パスワード
   ▼pollock さん:
>  If Not Intersect(Target, Range("AE17:AE116")) Is Nothing Then

上のコードは、何をしてるんですか?
何をしているのか理解すれば解ると思います。

【81327】Re:エラーが表示されたらBeep音で知らせる
質問  pollock  - 20/6/4(木) 18:24 -

引用なし
パスワード
   ※作業内容の説明:訂正
測定値をAE列(17〜116行が対象セル)の上から順に入力した際に、エラー値だった場合には同じ行のX列に「***」が表示されるようになっています(関数を使用)。「AE列に入力後、同じ行のX列を確認して「***」だった場合に音を出す」ことを目的としたマクロを作成しています。

お知恵をお貸しください。

>>If Not Intersect(Target, Range("AE17:AE116")) Is Nothing Then
この行では、「AE行に入力したときに...」という条件を付けている、つもりです。誤った使い方でしょうか??

【81329】Re:エラーが表示されたらBeep音で知らせる
発言  BJ  - 20/6/4(木) 22:45 -

引用なし
パスワード
   ▼pollock さん:
>上から順に入力した際に、

ええと、入力した際って、入力してもうんともすんとも動かないのでは・・・。
手本にしたプログラムがどういう所で使われているのか理解してますか?

【81330】Re:エラーが表示されたらBeep音で知らせる
質問  pollock  - 20/6/5(金) 8:45 -

引用なし
パスワード
   返信ありがとうございます。

例(下記など、intersectで検索していくつか参考にしました)を見ると、特定のセルが変更された際に...とありましたのでこれで良いかと思っていました。
マクロ名に「_Change」をつけてみましたが...
何かヒントを頂けないでしょうか。

参考にしたコード
「特定のセル範囲が変更されたときに処理を実行する」
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("A1:B5")) Is Nothing Then
    Exit Sub
  Else
    MsgBox "セルの値が変更されました"
  End If
End Sub

【81332】Re:エラーが表示されたらBeep音で知らせる
発言  BJ  - 20/6/5(金) 10:15 -

引用なし
パスワード
   とりあえず、こういうところを読んだ方が解りやすいかと。

ht tps://excel-ubara.com/excelvba1/EXCELVBA425.html

【81333】Re:エラーが表示されたらBeep音で知らせる
発言  BJ  - 20/6/5(金) 10:29 -

引用なし
パスワード
   上記url先の
「外部リンクにより変更されたときに発生します。」
は、いまいち解りません。
私は、単純にセルの内容が書き換えられた時と思ってます。

【81334】Re:エラーが表示されたらBeep音で知らせる
回答  BJ  - 20/6/5(金) 10:35 -

引用なし
パスワード
  
難しい奴、クエリとか?
昔、日経PCに載ってた数式の実で時計表示ができるやつの部類?
私には、全然わかりませんでした。

【81335】すみません。誤字修正
発言  BJ  - 20/6/5(金) 10:37 -

引用なし
パスワード
   数式の実で
 ↓
数式だけで

【81341】Re:エラーが表示されたらBeep音で知らせる
お礼  pollock  - 20/6/5(金) 14:14 -

引用なし
パスワード
   BJ様

教えて頂いた情報を元に、試行錯誤をしていました。
お陰様で、以下のコードによって「エラーが表示されたらBeep音で知らせる」が叶いました。
プロシージャ名には名前以上の意味と機能が備わっていたのですね。とても勉強になりました。ありがとうございました。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim r As Range, i As Integer
  If Not Intersect(Target, Range("AE17:AE116")) Is Nothing Then
    If Target.Offset(, -7).Value = "***" Then
    Beep
    End If
  End If
End Sub

247 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free