- 追加された行はこの色です。
- 削除された行はこの色です。
[[Excel VBA(仮)]]
#contents
**自作関数 [#aa2107a2]
***位置指定のコンテンツをクリアする [#u43368f9]
-サブルーチン名:s_clearContentRange
-引数:消したいセルの開始列、開始行
#ref(Sub_clearContentRange.PNG)
'--------------------------------------------------------------------
' クリアコンテンツ(最終行取得→指定のセルまでをクリア)
'--------------------------------------------------------------------
Sub s_clearContentRangeRow(iStartCol, iStartRow)
Dim iLogRow As Integer
'クリアしたい位置の最終行を知る(下から最終行取得)
iLogRow = Sheet1.Cells(Rows.Count, iStartCol).End(xlUp).Row
'データ最終行と消したくない行データ(タイトルなど、ここでは「ログ出力」)が一致した場合
'つまり消すデータがない
If (iLogRow = iStartRow) Then
Exit Sub
'開始位置までのデータの値のみクリアする
Else
iLogRow = iLogRow - (iStartRow + 1)
End If
Sheet1.Range(Cells(iStartRow + 1, iStartCol), Cells(iStartRow + 1 + iLogRow, iStartCol)).ClearContents
End Sub
***ログ出力をする [#lf5597fa]
-サブルーチン名:s_setLog(strMsg)
-引数:出力したいメッセージ
'--------------------------------------------------------------------
' ログを書く
'--------------------------------------------------------------------
cnsLogStartRow:ログ出力開始位置(行)
Sub s_setLog(strMsg)
Dim iLogRow As Integer
'ログの位置を知る(下から最終行取得)
iLogRow = Sheet1.Cells(Rows.Count, cnsLogStartCol).End(xlUp).Row
iLogRow = iLogRow - cnsLogStartRow + 1
Sheet1.Cells(cnsLogStartRow + iLogRow, cnsLogStartCol) = strMsg
End Sub
***エラーハンドリング [#m4466968]
-実行時エラー
-サブルーチン名:systemErr
-引数:エラーNo, エラー詳細, エラーが起きたサブルーチン
'--------------------------------------------------------------------
' 実行時エラー処理
'--------------------------------------------------------------------
' 実行時エラー時のエラーメッセージ出力
Public Function systemErr(ByVal errNumber As Integer, _
ByVal errDescription As String, _
ByVal errProcedure As String) As Integer
Dim ERR_MSG_01 As String
Dim strErrMessage As String 'エラーメッセージ
Dim intRet As Integer
Dim ERR_MSG_TITLE As String
ERR_MSG_TITLE = "実行時エラー"
ERR_MSG_01 = "システムエラーが発生しました。"
strErrMessage = ERR_MSG_01 & Chr(13) & Chr(10) & _
"エラー番号:" & str(errNumber) & Chr(13) & Chr(10) & _
"エラーメッセージ:" & errDescription & Chr(13) & Chr(10) & _
"エラー発生箇所:" & errProcedure
Debug.Print strErrMessage
systemErr = MsgBox(strErrMessage, vbCritical + vbOKOnly, ERR_MSG_TITLE)
End Function
-呼び出し元
On Error GoTo ErrHandler
--省略(処理)--
ErrHandler:
'実行時エラー
intRet = systemErr(Err.Number, Err.Description, "f_getFileName")
'異常終了
f_getFileName = True
GoTo ExitHandler
**日付操作 [#z41d9bdd]
Sub test()
Dim stryymmdd As String
Dim dDate As Date
stryymmdd = "100210"
dDate = CDate(Format(stryymmdd, "@@@@/@@/@@"))
MsgBox Format(dDate, "yyyymmdd")
End Sub