EXCELのマクロを用いてルーレットの様なプログラムを作っています。
ミリ秒間隔で処理を呼び出したいので、SetTimerを用いることにしました。
STARTボタンとSTOPボタンを用意し、
STARTボタンをクリックすると、
タイマーをセットし、
100ミリ秒間隔で 処理(nextCell)を呼び出すようにしています。
そしてこの処理(ルーレットのように複数のセルが順番に点滅する)は上手くいきます
STOPボタンをクリックしたときは、TimerStopを呼び出し、KillTimerしています。
ここで、STOPボタンをクリックするたびに、EXCELが実行時エラー50290で異常終了します。
ネットで調べてみたのですが、リンク先のページが見つからなかったりで、よくわかりません。
ちなみに、100ミリ秒間隔を 300ミリ秒間隔にすると、10回中9回くらいは上手くいくのですが、
1回程度はEXCELが実行時エラー50290で異常終了します。
EXCELのバージョンは2013
OSはWindows7 Pro(64ビット)
を使用しています。
ソースコードは以下の通りです。
Option Explicit
Private Declare Function SetTimer Lib "user32" (ByVal Hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Sub KillTimer Lib "user32" (ByVal Hwnd As Long, ByVal nIDEvent As Long)
Private myTimerId As Long
Sub TimerCall()
'STARTボタンで呼ばれる
myTimerId = SetTimer(0&, 0&, 100, AddressOf TimerCount)
End Sub
Sub TimerCount(ByVal Hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
nextCell 'ここでルーレットの処理を行う
End Sub
Sub TimerStop()
'STOPボタンで呼ばれる。ここで必ず異常終了
KillTimer 0&, myTimerId
End Sub
KillTimerにブレイクポイントを設定しても、そこでSTOPせずEXCELが実行時エラー50290で異常終了します。
(←ブレイクポイントで止まらないということは、メモリ破壊なのかと考え、
nextCellを以下のような簡単なプログラムに変更しましたが、結果は同じでした。
Sub nextCell()
'同じセルを点滅させるだけ
Cells(1, 1).Interior.Color = RGB(255, 255, 255)
Cells(1, 1).Interior.Color = RGB(255, 0, 0)
End Sub
また、TimerCountからnextCellを呼び出さなければ、異常終了はしません)
原因や調査方法、別のやり方など、なんでもけっこうですのでアドバイスをお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
エクセルVBA 実行時エラー 50290について
Visual Basic(VBA)
-
「アプリケーション定義またはオブジェクト定義のエラー」の解決
Visual Basic(VBA)
-
VBAのこの実行時エラーは何故起きる?
Visual Basic(VBA)
-
-
4
Excel(VBA)でSetTimer関数を使用する時..
Excel(エクセル)
-
5
簡易リストボックス
その他(Microsoft Office)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
エクセルでエラーが出て困っています。
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
10
screenupdatingが機能しなくて困ってます
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
15
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
16
Excel VBAでCheckboxの名前を変数にとって値を調べたい
Visual Basic(VBA)
-
17
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
18
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
19
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
20
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
Excelで、ボタンにコメントをつ...
-
UPS警告音を止めたい
-
フレーム内のオプションボタン...
-
excel スクロールしても常にボ...
-
Excel vab でのボタンの使い分...
-
複数シートのボタンに同一の動...
-
ユーザーフォームをショートカ...
-
エクセルVBA フォームへ動...
-
access2010 リストボックス内に...
-
VBAでオプションボタンなどそれ...
-
ボタンを押す装置を安価につく...
-
【Excel VBA】マクロボタンを表...
-
オブジェクト名をVBAで指定...
-
エクセル フォームの ボタン...
-
dynabookのボタンが機能しない
-
AccessVBAでオプションボタン・...
-
VBAでクリアボタンのみ残してシ...
-
EXCELのマクロが 実行時エラー5...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
UPS警告音を止めたい
-
複数シートのボタンに同一の動...
-
ユーザーフォームをショートカ...
-
Excelで、ボタンにコメントをつ...
-
マクロで作ったボタンのサイズ...
-
フォームコントロールから作っ...
-
Excel ラジオボタンのリセット...
-
【Excel VBA】マクロボタンを表...
-
エクセルで、オプションボタン...
-
excel スクロールしても常にボ...
-
EXCELの塗りつぶしのボタ...
-
EXCELのマクロが 実行時エラー5...
-
Accessのフォームでタブの色
-
マクロ初心者です。 msgboxのre...
-
入力済み、選択したセルに連動...
-
Access VBAでボタンの背景色を...
-
エクセルでマクロボタンを押す...
-
エクセルVBA フォームへ動...
おすすめ情報