ブックが既に開いているかどうかの確認(Microsoft Excel)
マクロは、ワークブックに含まれる情報をスライス、ダイス、またはその他の方法で処理するためによく使用されます。もちろん、これは、情報を含むワークブックが実際に開いていることを前提としています。そうでない場合は、必要なブックを実際に開くためのコードをマクロに含める必要があります。
ブックを開くと、マクロの速度が大幅に低下する可能性があります。ディスクにアクセスしてファイルをロードするには時間がかかります。したがって、実際にブックを開こうとする手間をかける前に、マクロがブックが開いているかどうかを確認できる場合、ブックが既に開いていることがわかっている場合は、マクロを大幅に高速化できます。
ブックが開いているかどうかをチェックするタスクにアプローチする非常に柔軟な方法の1つは、チェックを実行する関数を使用し、ブックが開いているかどうかに基づいてTRUEまたはFALSEの値を返すことです。次の短いマクロは、この簡潔なタスクを実行します。
Function AlreadyOpen(sFname As String) As Boolean Dim wkb As Workbook On Error Resume Next Set wkb = Workbooks(sFname) AlreadyOpen = Not wkb Is Nothing Set wkb = Nothing End Function
この関数を使用するには、次の方法で、チェックするブックの名前を渡すだけです。
sFilename = "MyFileName.xls" sPath = "C:\MyFolder\MySubFolder\" If AlreadyOpen(sFilename) Then 'Do not have to open Else Workbooks.Open sPath & sFilename End If
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(10985)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。