ExcelVBAで高速化のための色々ON/OFF

Sub Focus(aSheet As Worksheet, aFlag As Boolean)

    Application.ScreenUpdating = aFlag
    Application.DisplayStatusBar = aFlag
    Application.Calculation = aFlag
    aSheet.EnableCalculation = aFlag
    Application.EnableEvents = aFlag
    aSheet.DisplayPageBreaks = aFlag
    Dim i
    For i = 0 To aSheet.PivotTables.Count - 1
        aSheet.PivotTables(i).ManualUpdate = aFlag
    Next
    Application.PrintCommunication = aFlag

End Sub

ReDocの使い方

redoc spec-urlのとこに表示したいjson指定するだけでOK。
超簡単。


redoc.html

<!DOCTYPE html>
<html>
  <head>
    <title>ReDoc</title>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
  </head>
  <body>
    <redoc spec-url="http://petstore.swagger.io/v2/swagger.json"></redoc>
    <script src="https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js"></script>
  </body>
</html>

ExcelVBAでワークシートからブック名を取得する

Sub シート名がわかっているときにブック名を取得する()
 Const FIND_SH = "顧客マスター"
 Dim bk As Workbook
 Dim sh As Worksheet
 For Each bk in Workbooks
  For Each sh in bk.Worksheets
   If sh.Name = FIND_SH Then
     MsgBox sh.Parent.Name
     Exit Sub
   End If
  Next sh
 Next bk
 MsgBox "「" & FIND_SH & "」シートは存在しません。"
End Sub

ExcelVBAでセルが更新されたら点滅させる

Dim a_cell As Variant
Private Sub Worksheet_Calculate()
 If a_cell = "" Then
  a_cell = Cells(1,1).Value       'セルに初期値が入っていない時に代入
  Exit Sub                 '1回目だけは、そのまま抜ける
 End If
 If a_cell <> Cells(1, 1).Value Then     'セル値が変化した時のみ動作
  Cells(1, 1).Interior.Pattern = xlNone      'セル色なし
  Application.Wait(Now + TimeValue("0:00:01"))  '1秒待つ
  Cells(1, 1).Interior.Color = RGB(256, 0, 0)   'セル色赤
  Application.Wait(Now + TimeValue("0:00:01"))  '1秒待つ
  Cells(1, 1).Interior.Pattern = xlNone      'セル色なし
  Application.Wait(Now + TimeValue("0:00:01"))  '1秒待つ
  Cells(1, 1).Interior.Color = RGB(256, 0, 0)   'セル色赤
  Application.Wait(Now + TimeValue("0:00:01"))  '1秒待つ
  Cells(1, 1).Interior.Pattern = xlNone      'セル色なし
  a_cell = Cells(1,1).Value             'セル値を更新
 End If
End Sub

ExcelVBAでフォームが開いてるか調査

    Dim bOPen_UserForm1 As Boolean: bOPen_UserForm1 = False
    Dim f As UserForm
    For Each f In UserForms
        If TypeOf f Is UserForm1 Then
            bOPen_UserForm1 = True
            'MsgBox "開かれている"
        End If
    Next
    If bOPen_UserForm1 = False Then
        Exit Sub
    End If
    'ダイアログが見えてるか調査
    If UserForm1.Visible = False Then
        Exit Sub
    End If