tkhrsskの日記

技術ネタなど

はてなブログのデザイン変更記録

久々に更新。
主に、サイドバーを右にしたのと、コード表示の部分がよくはみ出していたので、ちょっと詰めた。

テーマ:Bordeaux
背景:フローリングの床の画像
ヘッダ:<p>技術ネタなど | <a href=http://tkhrssk.hatenablog.com/archive>記事一覧</a> |</p>
サイドバー:検索、最新記事、月別アーカイブ、プロフィール、注目記事、最近のコメント、カテゴリー
デザインCSS:追加部分

#content{
    width: 1000px;
}

#blog-title h1{
    padding: 0;
}

.code{
    font-size: 12px;
    line-height: 1.2;
}

開いているブック一覧 & ワイルドカード判定

標題の通り。

Sub ブック一覧()
    Dim wb As Workbook
    Dim sheet As Worksheet
    
    Debug.Print "ThisBook :" & ThisWorkbook.Name
    
    For Each wb In Workbooks
        Debug.Print wb.Name
        If wb.Name Like "*探し物*" Then
            Debug.Print "探し物が見つかりました! :" & wb.Name
        End If
        For Each sheet In wb.Worksheets
            Debug.Print "  Sheet: " & sheet.Name
        Next sheet
    Next wb
End Sub

オートフィルタ状態の確認

またも深夜のVBA探索。。。

フィルタ状況を調べる

Sub フィルタチェック()
    Dim i As Long, title As String
    Dim f As Filter
    Dim af As AutoFilter

    If ActiveSheet.AutoFilterMode Then
        For i = 1 To ActiveSheet.AutoFilter.Filters.Count
            Set f = ActiveSheet.AutoFilter.Filters(i)
            With f
                If f.On Then
                    title = ActiveSheet.AutoFilter.Range.Cells(1, i)
                    Debug.Print f.Operator
                    Select Case f.Operator
                    Case 0
                        Debug.Print title & f.Criteria1 & " で絞り込まれています"
                    Case xlAnd
                        Debug.Print title & f.Criteria1 & " and " & title & f.Criteria2 & " で絞り込まれています"
                    Case xlOr
                        Debug.Print title & f.Criteria1 & " or " & title & f.Criteria2 & " で絞り込まれています"
                    Case xlFilterValues
                        Dim j As Long
                        For j = LBound(f.Criteria1) To UBound(f.Criteria1)
                            Debug.Print title & f.Criteria1(j) & " で絞り込まれています"
                        Next j
                    Case Else
                    End Select
                End If
            End With
        Next i
        Debug.Print "レコード数:" & ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
    End If
End Sub

フィルタをかける

    ActiveSheet.AutoFilter.Range.AutoFilter Field:=3, Criteria1:="=00001", _
        Operator:=xlOr, Criteria2:="=00002"

VBAでWorkbook Close時に強制停止の回避方法

環境依存だったが、EXCEL VBAマクロで強制停止する現象が発生した。

ステップ実行していったところ、Workbook Close時に死んでいるっぽい。

いろいろと検証してみたところ、大きな領域をコピーしたままEXCELを閉じるときにでる
"あの警告"がでる場合に問題らしい。

ということで、Closeするまえに、コピー状態を解除することで回避実現。

Application.CutCopyMode = False

以上