記述の規則 開始・終了処理 プログラム制御 ファイル操作
ワークブック・シート操作 セル・行・列の操作 セルの書式設定 関数
ウィンドウ操作 グラフ操作 データベースの操作 印刷
 
Page Index
●ジャンプ(GoTo)
●実行の中断(Stop)
●強制終了(Exit)
●プロセジャーの終了(End)
●プロセジャーの呼び出し
●条件分岐(If...Then)
●条件分岐(If...Then...Else)
●条件分岐(If...Then...ElseIf)
●条件分岐(Select Case)
●繰り返し(ループ)処理(While):前判定型
●繰り返し(ループ)処理(Do...Loop):前判定型、後判定型
●繰り返し(ループ)処理(For...Next):前判定型
●繰り返し(ループ)処理(For Each...Next):前判定型
●再帰呼び出し(Recursive Call)
●午後 5 時に Procedure を実行する
●実行中のマクロを一定時間停止する
●現在時刻から 15 秒後に Procedure を実行する
●他のブック・シートのマクロの実行または関数の呼び出しを行う
●長時間処理プログラムの雛形
 
本章では、プログラムを制御するVBA記述ルールと、コードサンプルを例示します。
 
ジャンプ(GoTo) ↑ このページの最初へ
GoTo ラベル名

ラベル名:
 
実行の中断(Stop) ↑ このページの最初へ
プログラムの実行を一時的に中断する。

Stop
 
強制終了(Exit) ↑ このページの最初へ
繰り返し処理やプロセジャーから抜ける。

Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
 
プロセジャーの終了(End) ↑ このページの最初へ
プロセジャーやステートメントを終了させる。

End
End Function
End If
End Property
End Select
End Sub
End Type
End With
 
プロセジャーの呼び出し ↑ このページの最初へ
【呼び出しの制限】
Privatepロセジャーは同じモジュール内でのみ呼び出しが可能

【呼び出しの規則】
標準モジュールからクラスモジュールを呼び出す場合は、プロセジャーの前にクラスモジュール名を記述する。

ex.
クラスモジュールX.プロセジャーY
 
条件分岐(If...Then) ↑ このページの最初へ
If 条件文 Then 処理1     'コードが1つの場合

If 条件文 Then          'コードが複数の場合
  処理1
EndIf

ex.
If Counter < 20 Then Counte = 20
 
条件分岐(If...Then...Else) ↑ このページの最初へ
If 条件文 Then 処理1 Else 処理2     'コードが1つの場合

If 条件文 Then                   'コードが複数の場合
  処理1
Else
  処理2
EndIf
 
条件分岐(If...Then...ElseIf) ↑ このページの最初へ
If 条件文 Then
  処理1
ElseIf
  処理2
ElseIf
  処理3
Else
  処理4
EndIf
 
条件分岐(Select Case) ↑ このページの最初へ
Select Case 領域/条件文
 Case ケース1
   処理1
 Case ケース2
   処理2
End Select

ex.
Select Case A
 Case 10
   X=1
 Case 20
   X=2
End Select
 
繰り返し(ループ)処理(While) ↑ このページの最初へ
While 条件文
-- ここに繰り返す処理を書く --
Wend

ex.
While Counter < 20
-- ここに繰り返す処理を書く --
Wend
 
繰り返し(ループ)処理(Do...Loop) ↑ このページの最初へ
Do While 条件文
-- ここに繰り返す処理を書く --
Loop


Do
-- ここに繰り返す処理を書く --
Loop Until 条件文
 
繰り返し(ループ)処理(For...Next) ↑ このページの最初へ
For Counter = 1 To 20
-- ここに繰り返す処理を書く --
Next Counter
 
繰り返し(ループ)処理(For Each...Next) ↑ このページの最初へ
『コレクション』の各オブジェクトや『配列』の各要素に対して繰り返し処理を実行する

Dim ss As Range
For Each ss In ActiveSheet.UsedRange
  ss.Value = "使用範囲です"
Next
 
再帰呼び出し(Recursive Call) ↑ このページの最初へ
SubやFunctionの中から、さらに自分自身を呼び出すような処理ができます。再帰呼び出しを利用することで、複雑な処理を非常に単純なコードとして実現できる場合があります。下の例では、「Msgbox CC」を5回実行します。

ex.
Sub a()
    
CountDown (5)
End Sub

Function CountDown(cc As Integer) As Integer
    If cc > 0 Then
        
MsgBox cc
        CountDown = CountDown(cc - 1)
    Else
        MsgBox "ここまで"
    End If
End Function
 
午後 5 時に Procedure を実行する ↑ このページの最初へ
Application.OnTime TimeValue("17:00:00"), "my_Procedure"

上の OnTime メソッドの設定を取り消す
Application.OnTime TimeValue("17:00:00"), "my_Procedure",,False
 
実行中のマクロを一定時間停止する ↑ このページの最初へ
Application.Wait "18:23:00"

次の使用例は、実行中のマクロを約 10 秒間停止します。

newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
 
現在時刻から 15 秒後に Procedure を実行する ↑ このページの最初へ
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
 
他のブック、シートマクロの実行または関数の呼び出しを行う ↑ このページの最初へ
MYCUSTOM.XLM というマクロ シートで定義されている、My_Func_Sum という関数マクロを呼び出します。
マクロ シートは開かれている必要があります。この関数には 2 つの数値引数があり、次の使用例では1 と 5 が渡されます。

mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
MsgBox "マクロの結果: " & mySum


別の例
020補助簿.xls というブックのModule1というマクロ シートで定義されている、Import という関数マクロを呼び出します。マクロ シートは開かれている必要はありません

Application.Run "020補助簿.xls!Module1.Import"
長時間ルーチンの雛型 ↑ このページの最初へ
Dim Msg

On Error GoTo ErrHndlr
'カーソルを時計マークにする
Application.Cursor = xlWait
'ステータスバーを表示する
Application.DisplayStatusBar = True

Open "a" For Input As #1
Application.StatusBar = "処理 50% 終了しました"

'標準に戻す
Application.Cursor = xlNormal
Application.DisplayStatusBar = False
Exit Sub
ErrHndlr:
Msg = "エラー番号 " & Str(Err.Number) & Err.Source & " でエラーが発生しました。" _
& Chr(13) & Err.Description

MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
'標準に戻す
Application.Cursor = xlNormal
Application.DisplayStatusBar = False
 

↑ このページの最初へ

  ご意見・ご感想をお寄せください。info@beagle-hc.com ‖ このサイトについて                                     
  Copyright 2006 - 2009 uTRAM Corp. All Rights Reserved
BEAGLE-HC
HOME くすりのこと 研究開発 個別業務 IT 広報・教育 団体・組織

医薬品・医療機器の研究・開発 ポータルサイト
          サイトマップ
 現在位置 : HOME > IT プログラミング > Excel コードライブラリアン(プログラム制御)