マクロ内の非表示行のスキップ(Microsoft Excel)
ワークシートを使用する場合、現時点で表示したくないデータを含む行を非表示にすることは珍しくありません。ワークシートのデータを処理するマクロを作成した場合、非表示としてマークした行を処理せずにスキップする方法を疑問に思うかもしれません。
これを実現する方法は、各行のHiddenプロパティを確認することです。
プロパティがTrueの場合、行は非表示になります。 Falseの場合、行が表示されます。
これがどのように機能するかの例として、クライアントの追跡に使用するワークシートがあると想定します。これらのクライアントの一部はアクティブと見なされ、その他は非アクティブと見なされます。クライアントを非アクティブとしてマークするには、クライアントを含む行を非表示にします。ある時点で、アクティブなクライアントに番号を付け、マクロを使用して番号を付けたいと考えています。次のマクロはあなたのためにトリックを行います:
Sub NumberClients() Dim c As Range Dim j As Integer If Selection.Columns.Count > 1 Then MsgBox "Only select the cells you want numbered" Exit Sub End If j = 0 For Each c In Selection If Not c.Rows.Hidden Then j = j + 1 c.Value = j Else c.Clear End If Next c End Sub
マクロを使用するには、番号付けが行われるセルを選択するだけです。マクロは、まず最初に、単一の列でセルのみが選択されていることを確認します。次に、選択した範囲の各セルをステップスルーします。セルを含む行が非表示になっていない場合、カウンター(j)がインクリメントされ、セルに格納されます。セルを含む行が非表示の場合、セルの内容はクリアされます。このマクロの鍵は、Hidden属性の値をテストするIf … EndIf構造体です。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2286)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkマクロ内の非表示の行をスキップ。