投稿

1月, 2021の投稿を表示しています

VBAフィルタされた行を選択

Quick Edit Pencil
フィルター後の見えている行だけを選択する
オッケーなコード
Dim r As Range
Set r = ActiveSheet.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
r.Select
Debug.Print Selection.Rows.Count

肝は .SpecialCells(xlCellTypeVisible) 

VBA test関数 正規表現 Pattern直書き

Quick Edit Pencil
インラインで処理するための必要最低限なコード
'選択されたリストが四桁の西暦かチェックする

With CreateObject("VBScript.RegExp")    '正規表現を利用する為のオブジェクトを作成
  .Pattern = "^[0-9]{4}$"   '文字列パターンを設定
  Debug.Print .Test(ComboBox1.Text) '結果を格納
End With

参考にしたソース
【VBA】正規表現を使用して検索や置換を行う | 自恃ろぐ-jizilog.com-
Sample1()
'正規表現を使用し文字/数値を判定する
'**Testメソッド**
 
  '正規表現を利用する為のオブジェクトを作成
  With CreateObject("VBScript.RegExp")
  
    '文字列パターンを設定
    '「^」=文字列先頭にマッチ、[0-9]=0~9数値指定
    .Pattern = "^[0-9]"
    
    'セルA1に入力された文字列が設定パターンに該当するかテストし
    '結果をメッセージボックスに表示
    MsgBox "文字列「" & Cells(1, 1).Value & "」の先頭は数値?:" _
    & .Test(Cells(1, 1).Value) & vbLf & vbLf _
    & "True=数値 False=文字"
    
  End With
    
End Sub

Excel VBA オートフィルタの条件に配列を指定 複数条件を指定する

Quick Edit Pencil
Rangeオブジェクト.AutoFilter Field:=1, Criteria1:=Array("B", "D", "E", "F"), Operator:=xlFilterValues

複雑な条件(複数除外等)のオートフィルター(AutoFilter)|VBA技術解説

VBA エラーが出たらメッセージを出して正しい処理を促す

Quick Edit Pencil
Sub 日付加算()

On Error GoTo errorhndler
Dim 加算数 As Integer
加算数 = Split(StrConv(ActiveSheet.Buttons(Application.Caller).Text, vbNarrow), " ")(1)
Debug.Print 加算数
Dim 日付 As String
日付 = Format(Range("入力!B3"), "####/##/##")
Range("入力!B3").Value = Format(DateAdd("d", 加算数, 日付), "yyyymmdd")
日付 = Format(Range("入力!E3"), "####/##/##")
Range("入力!E3").Value = Format(DateAdd("d", 加算数, 日付), "yyyymmdd")
On Error GoTo 0
'加算日数値が確認できない場合はメッセージを出して終了
Exit Sub
errorhndler:
    MsgBox "エラー " & vbCrLf & "ボタンのテキストを次に変更します" & vbCrLf & vbCrLf & "「日付加算日数 1」"
    ActiveSheet.Buttons(Application.Caller).Text = "日付加算日数 1"
    MsgBox "変更されたボタンのテキストを編集して" & vbCrLf & vbCrLf & "数値を任意に変更します"
    'Resume Next
    Exit Sub

End Sub
VBAでエラー処理を無効にする | ExcelのVBA入門
Sub sample()

    On Error GoTo errorhndler

    Dim i As Integer
    
    i = "VBA"   '①処理
    
    On Error GoTo 0 '④処理
    
    i = "VBA"
    
    MsgBox "変数iは" & i & "です。"
    
    Exit Sub
    
errorhndler:    '②処理

    MsgBox "変数の値が間違っています。"
    
    Resume Next '③処理

End Sub

vba ボタンのテキストを取得する

Quick Edit Pencil
ActiveSheet.Buttons(Application.Caller).Text