![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
エクセルVBA 実行時エラー 50290について
Visual Basic(VBA)
-
「アプリケーション定義またはオブジェクト定義のエラー」の解決
Visual Basic(VBA)
-
簡易リストボックス
その他(Microsoft Office)
-
-
4
VBAのこの実行時エラーは何故起きる?
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
Excel VBAでCheckboxの名前を変数にとって値を調べたい
Visual Basic(VBA)
-
8
screenupdatingが機能しなくて困ってます
Visual Basic(VBA)
-
9
Excel(VBA)でSetTimer関数を使用する時..
Excel(エクセル)
-
10
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
11
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
Visual Basic(VBA)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
シートの保護のあとセルの列、幅を動かせるようにしたい
Excel(エクセル)
-
15
エクセルの保護で、列の表示や非表示が加納にするには
Excel(エクセル)
-
16
VBAの配列サイズとメモリに関して
Visual Basic(VBA)
-
17
Excel(エクセル) VBA プロシージャーをミリ秒で繰り返し実行する方法
Excel(エクセル)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPS警告音を止めたい
-
Excelシート上のマクロを登録し...
-
Excel ラジオボタンのリセット...
-
ボタンを画像で作るか、CSSでデ...
-
複数CSVファイルを一括インポート
-
エクセルの画面にユーザーフォ...
-
マクロ初心者です。 msgboxのre...
-
Excelで、ボタンにコメントをつ...
-
ユーザーフォームをショートカ...
-
オブジェクト名をVBAで指定...
-
エクセルのチェックボックスと...
-
フォームコントロールから作っ...
-
テキストボックスを消すVBA
-
エクセルで、オプションボタン...
-
VBAでフォームの閉じるボタンを...
-
Accessのフォームでタブの色
-
エクセルでグループボックスを...
-
入力済み、選択したセルに連動...
-
VBAでクリアボタンのみ残してシ...
-
エクセルでマクロボタンを押す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
エクセルの画面にユーザーフォ...
-
UPS警告音を止めたい
-
エクセルで、オプションボタン...
-
マクロで作ったボタンのサイズ...
-
ユーザーフォームをショートカ...
-
Excel ラジオボタンのリセット...
-
複数シートのボタンに同一の動...
-
Excelで、ボタンにコメントをつ...
-
【Excel VBA】マクロボタンを表...
-
マクロ初心者です。 msgboxのre...
-
入力済み、選択したセルに連動...
-
Accessのフォームでタブの色
-
フォームコントロールから作っ...
-
EXCELのマクロが 実行時エラー5...
-
EXCELの塗りつぶしのボタ...
-
excel スクロールしても常にボ...
-
コンボボックスウィザードが出...
-
Access VBAでボタンの背景色を...
-
エクセルでマクロボタンを押す...
おすすめ情報