つらつら Excel VBA

私の備忘録です。

On Error なんたらエラー処理

Sub Sample1

    On Error GoTo onErr

    'エラーが起きるような処理

    GoTo onEnd 'Exit Subなど

onErr:

    'エラー時の処理を記載

    Debug.Print Err.Number 'エラー番号
    Debug.Print Err.Description 'エラーメッセージ

    Resume Next 'エラー発生個所に戻る?未検証
onEnd:

End Sub

'※Err.Numberの種類別にエラートラップしたい方はご自由に。




'その他

On Error Goto 0  'エラートラップを無効化

On Error Resume Next  'エラー発生時も気にせず次の行へ

デバッグ作業

VBEにおいてデバッグでよく使うヤツ

[表示]-[ツールバー]-[編集]  主にコメント設定で使用

[表示]-[イミディエイトウィンドウ]  Debug.Print の出力ウィンドウ

[表示]-[ウォッチウィンドウ]  実行中の変数の中身を確認・編集ができる

 

ショートカットキー

[F5]  実行

[F8]  ステップ実行

構造体配列

Option Explicit

Public Type FileInfo '構造体の宣言
    no As Integer
    name As String
    title As String
End Type

Public FileInfoList(10) As FileInfo '構造体配列の宣言


'こんな感じ(動作未検証)

Dim fi As FileInfo
fi.no = 1
fi.name = "Name"
fi.title = "Title"
FileInfoList(0) = fi

ファイル数を数える

'指定したディレクトリ内のファイル数を数える。
Public Function FileCount(sDir As String) As Integer
    Dim rtnCnt As Integer
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    rtnCnt = FSO.GetFolder(sDir).Files.Count
    Set FSO = Nothing
    FileCount = rtnCnt
End Function

※細かい条件で数えたい場合は他の方法で頑張る。