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