Excel VBA質問箱 IV

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

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


30607 / 76732 ←次へ | 前へ→

【51390】繰り返し処理プロジェクト 運用編
回答  ichinose  - 07/9/14(金) 10:47 -

引用なし
パスワード
   運用方法

・    Excelを起動してください。

・    新規ブック(book1とします)の標準モジュールにある以下のコードを繰り返し処理することを考えます。

‘================================================================
Option Explicit
Public Type 足し算
  a As Long
  b As Long
  End Type
'==============================================================
Sub testtest(p As 足し算)
  MsgBox p.a + p.b
End Sub

・    まず、参照設定を行います。
  VBEのプロジェクトエクスプローラーにて、当該プロジェクトを選択した状態で
「ツール」---「参照設定」とクリックし、参照設定ダイアログを表示させます。
一覧にrepprocがあるはずです。チェックを入れてOKボタンをクリックしてください。
これで参照設定がされていれば、reptprocのコードが使えます。

・    Book1のThisworkBookのモジュールに

‘=======================================================================
Option Explicit
Dim WithEvents reptcls As reptproc.Class1

‘=======================================================================
Sub main()
  Set reptcls = reptproc.get_class ' Class1のインスタンスの取得  1
  reptcls.timer_set TimeValue("00:00:03") '----- 繰り返し時間の間隔設定 2
  '↑3秒毎に繰り返し処理実行を指示
End Sub

‘=======================================================================
'↓  timerjust イベントを提供  3
Private Sub reptcls_timerjust(ByVal cnt As Long, cancel As Boolean, t_para As Variant)
'このイベントプロシジャーに繰り返し処理する
' cnt 繰り返し実行回数 初期値は1
'cancel trueに設定すると、繰り返し処理終了
't_para このイベントプロシジャー内にデータを引き渡す配列(まだ使い道を模索中)
  Dim Plus As 足し算
  With Plus
    .a = 5
    .b = 6 + cnt
    End With
  Call testtest(Plus)
  If cnt >= 4 Then cancel = True '4回繰り返したら処理終了

End Sub


THisworkbookのmainを実行してみてください。

標準モジュールのtesttestを4回繰り返し処理します。

プロジェクトreptprocは上記の1,2,3の3つの機能を有します。

1 get_class ---- クラスClass1のインスタンスを取得する

Class1の機能

2 timer_set メソッド ------処理を繰り返し実行する時間間隔を登録する

3 timerjustイベント-------timer_setメソッド設定した時間間隔毎発生するイベントです。


試してみてください。
3 hits

【51308】OnTimeメソッドで呼び出すプロシージャへの引数の渡し方 jabjab 07/9/11(火) 13:49 質問
【51312】Re:OnTimeメソッドで呼び出すプロシージャ... Lindy 07/9/11(火) 15:20 発言
【51313】Re:OnTimeメソッドで呼び出すプロシージャ... jabjab 07/9/11(火) 15:42 発言
【51374】Re:OnTimeメソッドで呼び出すプロシージャ... ichinose 07/9/13(木) 19:10 発言
【51375】Re:OnTimeメソッドで呼び出すプロシージャ... ichinose 07/9/13(木) 20:22 発言
【51389】繰り返し処理プロジェクト 設定編 ichinose 07/9/14(金) 10:46 回答
【51390】繰り返し処理プロジェクト 運用編 ichinose 07/9/14(金) 10:47 回答

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