マクロは、ワークブックに含まれる情報をスライス、ダイス、またはその他の方法で処理するためによく使用されます。もちろん、これは、情報を含むワークブックが実際に開いていることを前提としています。そうでない場合は、必要なブックを実際に開くためのコードをマクロに含める必要があります。

ブックを開くと、マクロの速度が大幅に低下する可能性があります。ディスクにアクセスしてファイルをロードするには時間がかかります。したがって、実際にブックを開こうとする手間をかける前に、マクロがブックが開いているかどうかを確認できる場合、ブックが既に開いていることがわかっている場合は、マクロを大幅に高速化できます。

ブックが開いているかどうかをチェックするタスクにアプローチする非常に柔軟な方法の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トレーニングのソースです。

このヒント(3104)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。