概要
ExcelVBAで最終行取得など、使用頻度が多いが毎回忘れて検索の手間が掛かっているものがあるので
使用頻度が多そうなものを随時こちらに備忘録として残していこうと思います(='ω'=)
解説は抜きでコピペ用です。
最終行取得
Dim maxRow, maxCol As Long
maxRow = Cells(Rows.Count, 1).End(xlUp).Row'1(A列)の値がある最終行取得
maxCol = Cells(1, Columns.Count).End(xlToLeft).Column'1(1行目の)の値がある最終列取得
Sleep処理
以下の内容をモジュールの一番上に記載します。
調べるのが手間だと思うのでエラーが出ない方のみを記載すればよいです。
#32bitの場合
Public Declare PtrSafe Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
#64bitの場合
Public Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
実際の停止処理については、プロシージャで処理したい場所に以下の方法で設定します。
Sleep 1000 '1秒処理を停止
For文(処理途中抜け方法)
Dim i As Long
'A列の文字列チェック
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'stop文字が含まれる場合は処理を抜ける
If InStr(Cells(i, 1).Value),"stop")> 0 Then
Exit For
End If
Debug.Print i
Next i
Debug.Print "終了"
For文(ループ処理でcontinue)
Dim i As Integer
For i = 0 To 10
If i Mod 2 = 0 Then ' iが偶数の時はcontinueしたい
GoTo CONTINUE1: ' Goto文にて疑似的にcontinueを実現
End If
Debug.Print i
CONTINUE1:
Next i
バッチファイルの作成および実行
Dim batTest As String
batTest = "C:\VBA\BATファイルテスト\test.bat"
'バッチファイルの作成
Open batTest For Output As #1
Print #1, "echo testView"
Print #1, "pause"
Close #1
'バッチの実行
Shell batTest, vbNormalFocus