Excelのグラフィック機能を使用すると、事前定義された多数の図形をブックに追加できます。オートシェイプと呼ばれるこれらの形状は、幅広いニーズに対応します。ただし、オートシェイプ機能に図形を追加したい場合は、運が悪いです。形状は明らかにExcelにハードコードされており、変更することはできません。

ただし、クリップギャラリーに図形を追加することはできます。図形をWMFファイルとしてフォーマットすると、簡単に追加でき、ワークシート内に簡単に配置できます。たとえば、Excelで使用できるようにするさまざまなフローチャート記号がある場合、必要なのは、各記号をWMF形式で保存してから、クリップギャラリーにインポートすることだけです。 (グラフィックをWMF形式で保存するには、Paint ShopProやCorelDrawなどの特殊なグラフィックプログラムを使用する必要があります。)

何らかの理由でクリップギャラリーを使用したくない場合は、非表示のワークシートでマクロとグラフィックスを組み合わせて、独自のオートシェイプをシミュレートできます。次の一般的な手順では、一連の20個のフローチャートシンボルに対してこれを行う方法について詳しく説明します。この手順は、マクロの作成とツールバーのカスタマイズにある程度慣れていることを前提としています。

。テンプレートワークブックを開き、ワークシートが1つしかないことを確認します。

。すべてのフローチャートグラフィックをワークシートに配置します。

。新しいツールバーを作成し、MyShapesという名前を付けて、テンプレートワークブックに関連付けられていることを確認します。

。フローチャートグラフィックごとに1つずつ、20個のボタンをツールバーに追加します。ボタンをクリックすると、関連するフローチャートの形状がアクティブなワークシートに追加されるという考え方です。

。各ボタンの面を編集して、各フローチャートのグラフィックをできるだけ近くに表示します。 (これは、これらの手順の中で最も難しい部分です)。

。必要に応じて、各ボタンのツールチップテキストを変更します。これは、ユーザーが各フローチャートグラフィックの目的を理解できるようにするのに役立ちます。

。次に、各フローチャートグラフィックを選択して名前を付けます。 (グラフィックを選択し、数式バーの左側にある[名前]ボックスに名前を入力して名前を付けます。)これらの手順では、FlowObj1、FlowObj2などの名前を使用するとします。

。次の種類の20個のマクロ(フローチャートのグラフィックごとに1個)を記述します。

Sub AddFlowObj1()

ThisWorkbook.Sheets(1).Shapes("FlowObj1").Copy     ActiveSheet.Paste End Sub

。各マクロを対応するツールバーボタンに割り当てます。

。テンプレートのワークブックモジュールに、次の手順を追加します。

Private Sub Workbook_Open()

Application.CommandBars("MyShapes").Visible = True End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.CommandBars("MyShapes").Delete End Sub

。テンプレートをExcelアドインとして保存します。

。 Excelを再起動し、ツールを使用する|新しいアドインをアクティブにするためのアドイン。

注:

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

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

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