Jodyは、カスタムツールバーボタンを開発し、ボタンにマクロを割り当てる作業を行っています。彼女は、少なくとも1つのワークシートが表示されているときはいつでもボタンを有効にしたいのですが、そのような状況を処理するための適切なコードを把握しています。

Excelのように多様な環境で想定されるように、これに取り組む方法はたくさんあります。考えられる解決策の1つは、画面に表示されているウィンドウがあるかどうかを確認するだけのルーチンを作成することです。ある場合は、ツールバーボタンを有効にできます。ない場合は、無効にすることができます。次のマクロはまさにそれを行います:

Sub CheckButtons()

Dim bOneOpen As Boolean     Dim I As Integer     Dim J As Integer          bOneOpen = False     For I = 1 To Workbooks.Count         For J = 1 To Workbooks(I).Windows.Count             If Workbooks(I).Windows(J).Visible Then bOneOpen = True         Next J         If bOneOpen Then Exit For     Next I     If bln Then         'enable buttons     Else         'disable buttons     End If End Sub

マクロの下部にある2つのコメントに注意してください。あなたがする必要があるのは、ツールバーボタンを有効または無効にするためにそれらのコメントを適切なコードに置き換えることです。 (コードはボタンの数と構成によって異なります。)

このマクロは、手動で呼び出すことも、ウィンドウを開いたり、サイズを変更したり、最小化したり、最大化したり、復元したりしたときに発生するイベントなど、ウィンドウの変更によってトリガーされる任意のイベントから呼び出すことができます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2618)は、Microsoft Excel 97、2000、2002、および2003に適用されます。