![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルに為替の数値をリアルタイムで入るようにしております。(D1とします。)
そして、その数値がA1以下、またはB1以上になった時、ビープ音が
なるようにしたかったので、初心者なりに下記のように入れてみました。
Private Sub Worksheet_Calculate()
If Range("D1") >= Range("B1") Or Range("D1") <= Range("A1") Then
Call Beep(500, 200)
End If
End Sub
これでエクセルを起動すると「実行時エラー13 型が一致しません」
と出てしまいます。 デバッグを押すとIf Range("D1") >= Range("B1") Or Range("D1") <= Range("A1") Then のところが黄色くなっています。
デバッグではなく終了と押すと普通に作動はするのですが、
毎回実行時エラーになるので辛いです。
どの部分を訂正すればよいのでしょうか。
よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>為替の数値をリアルタイムで...
楽天RSSのようなDDE機能を使ったものでしょうか。
これはBookオープン時、初回計算時に『#NAME?(エラー 2029)』を一瞬返すようです。
DDEの仕様のような気もします。
回避方法が別にあるのかもしれませんが、取り敢えず
Option Explicit
Private Declare Function Beep Lib "kernel32" ( _
ByVal dwFreq As Long, _
ByVal dwDuration As Long) As Long
Private Sub Worksheet_Calculate()
Dim x
x = Range("D1").Value
If IsNumeric(x) Then
If x >= Range("B1").Value Or x <= Range("A1").Value Then
Call Beep(500, 300)
End If
End If
End Sub
これで。
ただ、DDEエラー発生時にもBeep音鳴らしたい場合もあるのではないかと。
その場合、初回だけ鳴るのを許容して
Private Sub Worksheet_Calculate()
Dim x
x = Range("D1").Value
If IsNumeric(x) Then
If x >= Range("B1").Value Or x <= Range("A1").Value Then
Call Beep(500, 300)
End If
Else
Call Beep(100, 300)
End If
End Sub
こんな感じでも良いかもしれませんね。
No.3
- 回答日時:
No.1です。
追記です。orz(1)VBAの挿入(I)->標準モジュール(M)
(2)標準モジュールのフォルダ内にModule1があると思うのでダブルクリック。
(3)以下をModule1にこぴぺ
Declare Function ApiBeep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
(4)作成したプログラムを修正。
修正前 → Call Beep(500, 200)
修正後 → Call ApiBeep(500, 200)
私の環境ではこれで音が出ました。
参考URL:http://detail.chiebukuro.yahoo.co.jp/qa/question …
No.2
- 回答日時:
方が一致しないとは、数値で比較したいのに、セルの中身が片側が数値、片側が文字となっている。
あるいは、片側が空白か未設定(まったく何も入力していない)かの時に起こります。まず、先ず、クイックウォッチで止まった状態のときのセルの中身を確認してみてください。
No.1
- 回答日時:
例えばシート1のセルA1の値をシート2のセルB2にコピーする場合は以下のように記述します。
Worksheets("Sheet2").Range("B2").Value = Worksheets("Sheet1").Range("A1").Value
セルの値を参照なので、
例えば Range("D1") ではなく、
Range("D1").Value
または
Worksheets("シート名").Range("D1").Value
でエラーが出なくなると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) VBA カゥントで数値の範囲を規制 1 2022/05/20 06:20
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
実行時エラー -'-2147417848
-
「コンパイルエラー:プロシー...
-
VBAがブレークモードになっ...
-
VB6+SQL サーバー 2000 で 実行...
-
なぜこんな初歩的なVBAのIf文で...
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー3001「引数が間違...
-
[Delphi] データセットは閉じて...
-
VBで構造体を使うさ際の64k...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
Excelで下記のようにマクロを作...
-
OLEDB.NETで接続できない
-
Access2000での未定義関数repla...
-
ACCESS フォームサイズ指定で...
-
職場から目的地までの距離集計
-
エラーでつまってます・・・お...
-
DataGridView からの値取得に関...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
マクロについて教えてください...
-
実行時エラー3001「引数が間違...
-
VBAがブレークモードになっ...
-
ExcelVBA Range クラスの Page...
-
VBSで変数の宣言はできないので...
-
VBS実行時エラー オブジェクト...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
ADODB.Streamを使用してUTF-8を...
-
VBAでのエラー
-
実行時エラー48発生時のDLL特定...
-
Outlook.ApplicationをCreateOb...
-
VB6+SQL サーバー 2000 で 実行...
-
実行時エラー -'-2147417848
-
「コンパイルエラー:プロシー...
おすすめ情報