出版

カスタムビューは、ユーザーがデータをさまざまな方法で表示する必要がある場合に便利ですが、場合によっては利用できないことがあります。この機能が無効になっている理由と対処法について説明します。
Excelでは、同じデータに対してカスタムビューを作成できます。これは、ユーザーにとって非常に便利な柔軟性の高いツールです。カスタムビューを作成することで、ユーザーは同じデータを異なる方法で表示できるため、手動で設定を変更するよりもはるかに迅速に作業できます。例えば、カスタムビューでは、非表示の列や行、一部のフィルター、ズーム設定、印刷設定などが保持されます。
カスタムビューを定義する際は、まずビューに必要な要素を設定します。すべてのプロパティを設定し、すべての設定にフラグを設定し、フィルターを設定するなどです。シートの外観が決まったら、以下の手順でカスタムビューを作成します。
- 「表示」タブをクリックし、「ブックの表示」グループで「カスタムビュー」を選択します。Excel 2003では、「表示」メニューから「カスタムビュー」を選択します。
- [追加]を選択します。
- ビューの名前を入力し、適切なオプションを選択して、「OK」をクリックします。
ビューをアクティブにするには、手順1を繰り返します。次に、「カスタムビュー」ダイアログでビューをダブルクリックします。または、ビューを選択して「表示」をクリックします。
Excel 2007および2010でカスタムビューを作成しようとすると、問題が発生する可能性があります。これは、ブック内にテーブルが1つでも存在すると、カスタムビュー機能が無効になるためです。テーブルは、カスタム表示領域と同じシートに配置する必要はありません。テーブルが1つしかない場合、カスタムビューは作成されません。
この時点で、ユーザーは現在のシートがグループに属していないことを確認する必要があります。Excel はグループ内のカスタムビュー機能を無効にします(Excel 2003 も同様です)。グループに属していなくても問題がない場合は、テーブルを保持してカスタムビューの使用をやめるか、すべてのテーブルを削除してカスタムビューを定義するかを選択できます。同じファイルで両方をサポートする方法はわかりません。
テーブルを削除することにした場合は、次のマクロを提供できます。
Sub ConvertTableToRange()
'Convert all tables in workbook to range.
Dim sht As Worksheet
Dim objTable As ListObject
For Each sht In ActiveWorkbook.Worksheets
For Each objTable In sht.ListObjects
objTable.Unlist
Next objTable
Next sht
End Sub
このシンプルなマクロは、ワークブック内の各シートを循環的に処理し、ワークブックからすべてのテーブル(ListObjectオブジェクト)を削除します。このマクロはデータを削除するのではなく、テーブルオブジェクトのみを削除します。すべてのテーブルを削除したら、カスタムビューを定義できます。良くも悪くも、このマクロはテーブルの書式設定を削除しません。また、変換するテーブルが見つからない場合の警告も表示しません。

スーザン・ハーキンス
スーザン・セールス・ハーキンスは、デスクトップソリューションを専門とするITコンサルタントです。以前は、世界最大の技術雑誌出版社であるコブ・グループの編集長を務めていました。