重要
この機能は、Windows RT PC の Office では使用できません。 使用している Office のバージョンを確認しますか?
フォームと、フォームに追加できる多くのコントロールやオブジェクトを使うことで、ワークシートへのデータ入力が容易になり、ワークシートの外観を改善できるようになります。 Microsoft Visual Basic for Applications (VBA) のコードをほとんど、またはまったく必要としないで、自身の操作でこれらのことを行うこともできます。
ワークシート フォームは Excel テンプレートと同じではありません。 テンプレートは、あらかじめ書式設定されているファイルであり、これを使用して、希望の外観のブックの作成を開始できます。 フォームには、ワークシートを使用するユーザーが簡単にデータを入力または編集できるようにするボックスやドロップダウン リストなどのコントロールが含まれています。 ダウンロードできるテンプレートの詳細については、「 Excel テンプレート」を参照してください。
フォームについて
フォームは、印刷されているかオンラインであるかに関係なく、情報の取得、整理、編集を容易にする標準的な構造と形式で設計されたドキュメントです。
- 印刷されたフォームには、指示、書式設定、ラベル、およびデータの書き込みまたは入力のための空白スペースが含まれています。 Excel および Excel テンプレートを使用して、印刷されたフォームを作成できます。
- オンライン フォームには、印刷されたフォームと同じ機能が含まれています。 さらに、オンライン フォームにはコントロールが含まれています。 コントロールは、データを表示したり、ユーザーがデータの入力や編集、操作や選択を簡単にしたりできるようにするオブジェクトです。 一般に、コントロールはフォームを使いやすくします。 一般的なコントロールの例としては、リスト ボックス、オプション ボタン、コマンド ボタンなどがあります。 またコントロールから、割り当てられているマクロを実行したり、Visual Basic for Applications (VBA) コードを実行することでマウス クリックなどのイベントに応答できます。
Excel をいくつかの方法で使用して、印刷フォームとオンライン フォームを作成できます。
Excel フォームの種類
データ フォーム、フォーム コントロールおよび ActiveX コントロールを含むワークシート、VBA のユーザー フォームなど、Excel で作成できるフォームには複数の種類があります。 各種類のフォームを単独で使用することも、さまざまな方法で組み合わせて目的に適したソリューションを作成することもできます。
データ フォーム
データ フォームを使用すると、水平方向にスクロールせずに、範囲またはテーブル内の 1 行の情報を入力または表示することが便利です。 データ列が多くて画面に収まらない場合、データ フォームを使用すると、列間を移動する必要がないため、簡単にデータを入力することができます。 列見出しをラベルとして一覧表示する単純な形式のテキスト ボックスで十分対応でき、リスト ボックスやスピン ボタンなどの高度なフォーム機能やカスタムのフォーム機能が不要な場合に、データ フォームを使用します。
Excel では、範囲またはテーブルの組み込みのデータ フォームを自動的に生成できます。 データ フォームでは、すべての列見出しがラベルとして 1 つのダイアログ ボックスに表示されます。 各ラベルの横には空のテキスト ボックスが表示され、そこに各列のデータを入力できます (最大で 32 列まで)。 データ フォームでは、新しい行の入力、移動による行の検索、または (セルの内容に基づいて) 行の更新と行の削除を行うことができます。 セルに数式が含まれている場合、数式の結果はデータ フォームに表示されますが、データ フォームを使用して数式を変更することはできません。
フォーム コントロールおよび ActiveX コントロールを含むワークシート
ワークシートは、グリッド上にデータを入力および表示できるフォームの一種です。コメントやデータの入力規則など、Excel ワークシートにはコントロールのような機能が既に組み込まれています。 セルはテキスト ボックスに似ており、さまざまな方法で入力および書式設定できます。 セルはラベルとして使用されることが多く、セルの高さや幅を調整したり、セルを結合したりすることで、ワークシートを単純なデータ入力フォームのように動作させることができます。 セルのコメント、ハイパーリンク、背景画像、データの入力規則、条件付き書式、埋め込みグラフ、オートフィルターなど、その他のコントロールのような機能を使用して、ワークシートを作成した後、詳細フォームのように動作させることができます。
柔軟性を高めるために、コントロールやその他の描画オブジェクトをワークシートの描画キャンバスに追加し、それらをワークシートのセルと組み合わせて調整できます。 たとえば、リスト ボックス コントロールを使用すると、項目を一覧から簡単に選択できるようになります。 また、スピン ボタン コントロールを使用すると、数字を簡単に入力できるようになります。
コントロールとオブジェクトは描画キャンバス上に保存されるため、ワークシート上のグリッドまたはデータ テーブルのレイアウトを変更することなく、行と列の境界に依存せずにコントロールとオブジェクトを関連するテキストと並べて表示または表示できます。 ほとんどの場合、これらのコントロールの多くはワークシートのセルにリンクすることもでき、VBA コードを必要としません。 コントロールを自由に浮動させるか、セルと一緒に移動およびサイズ変更するかを決定するプロパティを設定できます。 たとえば、範囲の並べ替え時に、下のセルと一緒に移動するチェック ボックスがある場合などです。 ただし、常に特定の場所に保持したいリスト ボックスがある場合、そのボックスを下のセルと共に移動したくない場合があります。
Excel には、フォーム コントロールと ActiveX コントロールという 2 種類のコントロールがあります。 これらの一連のコントロールに加えて、オートシェイプ、ワードアート、SmartArt グラフィック、テキスト ボックスなどのオブジェクトを描画ツールから追加することもできます。
次のセクションでは、これらのコントロールと描画オブジェクトについて説明します。また、その使用方法についても詳しく説明します。
フォーム コントロール
フォーム コントロールは、以前のバージョンの Excel (Excel 5.0 以降) と互換性のある独自のコントロールです。 XLM マクロ シートでも使用できるように設計されています。
フォーム コントロールは、VBA コードを使用しないでセルのデータを簡単に参照および操作する場合や、コントロールをグラフ シートに追加する場合に使用します。 たとえば、リスト ボックス コントロールをワークシートに追加してセルにリンクした後、コントロール内の選択したアイテムの現在の位置の数値を返すことができます。 その数値を INDEX 関数と組み合わせて使用することで、一覧から別の項目を選択できます。
また、フォーム コントロールを使用してマクロを実行できます。 既存のマクロをコントロールに関連付けることも、新しいマクロを作成または記録することもできます。 フォームのユーザーがコントロールをクリックすると、マクロが実行されます。
ただし、これらのコントロールをユーザー フォームに追加したり、イベントの制御に使用したり、Web ページで Web スクリプトを実行するように変更したりすることはできません。
フォーム コントロールの概要
| ボタン名 | 使用例 | 説明 |
|---|---|---|
|
Label |
|
|
グループ ボックス |
|
|
ボタン |
|
|
チェック ボックス |
|
|
オプション ボタン |
|
|
リスト ボックス |
|
|
コンボ ボックス |
|
|
スクロール バー |
|
|
スピン ボタン |
|
| ボタン名 |
|---|
テキスト フィールド |
コンボ リスト - 編集 |
コンボ ドロップダウン - 下編集 |
実行ダイアログ |
ActiveX コントロール
ActiveX コントロールは、ワークシート フォーム (VBA コードを使用することもできます) および VBA のユーザー フォームで使用できます。 通常、フォーム コントロールよりも柔軟な設計要件が必要な場合に ActiveX コントロールを使用します。 ActiveX コントロールには、外観、動作、フォント、およびその他の特性をカスタマイズできる広範なプロパティがあります。
また、ActiveX コントロールを操作したときに発生するさまざまなイベントを制御することもできます。 たとえば、ユーザーがリスト ボックス コントロールから選択した項目に応じて異なるアクションを実行したり、ボタンをクリックしたときにデータベースを照会してコンボ ボックスの項目を変更したりできます。 また、ActiveX コントロールと関連付けられたイベントに応答するマクロを作成することもできます。 フォームでユーザーがコントロールを操作すると、VBA コードによって、そのコントロールに対して発生した任意のイベントの処理が実行されます。
また、コンピューターには、Excel や他のプログラム (Windows メディア プレーヤーなど) によってインストールされた多くの ActiveX コントロールも含まれています。
重要
すべての ActiveX コントロールをワークシートで直接使用できるわけではありません。一部は Visual Basic for Applications (VBA) ユーザー フォームでのみ使用できます。 これらの特定の ActiveX コントロールのいずれかをワークシートに追加しようとすると、Excel には「オブジェクトを挿入できません」というメッセージが表示されます。
ただし、ActiveX コントロールは、ユーザー インターフェイスからグラフ シートに追加したり、XLM マクロ シートに追加したりすることはできません。 また、フォーム コントロールから行うのと同じように、ActiveX コントロールから直接実行するマクロを割り当てることはできません。
ActiveX コントロールの概要
| ボタン名 | 使用例 | 説明 |
|---|---|---|
|
チェック ボックス |
|
|
テキスト ボックス |
|
|
コマンド ボタン |
|
|
オプション ボタン |
|
|
リスト ボックス |
|
|
コンボ ボックス |
|
|
トグル ボタン |
|
|
スピン ボタン |
|
|
スクロール バー |
|
|
Label |
|
|
画像 |
|
| フレーム コントロール |
|
|
|
コントロールの選択 |
描画ツール オブジェクト
また、SmartArt グラフィック、図形、ワードアート、テキスト ボックスをフォームに含めることもできます。 これらのオブジェクトのサイズ変更、回転、反転、色付け、組み合わせて、さらに複雑な図形を作成できます。 図形またはテキスト ボックス オブジェクトに直接テキストを入力すると、テキストはオブジェクトの一部になります。オブジェクトを回転または反転させると、テキストも一緒に回転または反転します。 ActiveX コントロールとは異なり、フォント サイズやフォント スタイルなどの異なる属性をオブジェクト内の個々の単語や文字に割り当てることができます。 また、マクロを割り当てたり、これらのオブジェクトにハイパーリンクを追加したりすることもできます。 さらに、図形またはテキスト ボックス オブジェクト内のテキストをワークシートのセルにリンクし、それらのオブジェクトに更新された値を動的に表示することもできます。
ワークシート フォームでコントロールおよびオブジェクトを使用する
通常、ワークシート フォームにフォームや ActiveX を追加した場合は、優れたデザインの使いやすいフォームを作成するために、さまざまな方法でコントロールを微調整および整理する必要があります。 一般的な作業を次に示します。
- コントロールを操作するときの枠線の表示を調整する。最終的なワークシート フォーム上でユーザーに対して枠線を表示するかどうかを決定する。
- プロパティを指定したり、追加調整を行ったりできるように、コントロールを選択および選択解除する。
- コントロール内のテキスト (キャプション、ラベルなど) を編集する。
- コントロールのグループ化、コピー、移動、および位置揃えを行い、ワークシート フォームのレイアウトを整える。
- 目的の外観になるように、コントロールのサイズ変更および書式設定を行う。
- コントロールの位置とサイズをセルに合わせて設定する。
- 特定のデータ保護要件に応じて、コントロールおよびリンクされたセルを保護する。
- ワークシート フォームを印刷する場合、コントロールの印刷を有効または無効にする。
- 使用されていないコントロールを削除する。
ワークシート フォームでは、背景のセルの枠線の表示と非表示を切り替えることができます。 たとえば、セルの枠線を非表示にし、すべてのセルを同じ色やパターンで書式設定したり、シートの背景として図を使用したりできます。 枠線の表示と非表示を切り替えるには、[表示] タブの [表示] で、[枠線] チェック ボックスをオフまたはオンにします。
ワークシート内のコントロールの種類を特定する
独自に変更できる 3 種類のコントロールとオブジェクトがあるので、外観だけではどの種類かわからないことがあります。 コントロールの種類 (フォームまたは ActiveX) を特定するには、コントロールを選択して右クリックし、ショートカット メニューを表示します。
ショートカット メニューに [プロパティ] が表示される場合、そのコントロールは ActiveX コントロールであり、デザイン モードになっています。
ショートカット メニューに [マクロの登録] が表示される場合、そのコントロールはフォーム コントロールです。
ヒント
グループ ボックスのフォーム コントロールの正しいショートカット メニューを表示するには、グループ ボックスの内側ではなく周囲を選んでください。
ショートカット メニューに [テキストの編集] が表示される場合、そのオブジェクトは描画オブジェクトです。
VBA のユーザー フォーム
柔軟性を最大限に高めるために、通常は 1 つ以上の ActiveX コントロールを含むユーザー フォーム (カスタム ダイアログ ボックス) を作成できます。 Visual Basic Editor で作成した VBA コードからユーザー フォームを使用できるようにします。 ユーザー フォームを作成するための手順の概要は次のとおりです。
注
ActiveX コントロールはセキュリティ上の理由から無効になっており、新しいバージョンの Excel では機能しません。
- ブックの VBAProject にユーザー フォームを挿入します。 ブックの VBAProject にアクセスするには、最初に Visual Basic Editor を表示して (Alt + F11 キーを押し)、 次に [挿入 ] メニューの [ユーザーフォーム] をクリックします。
- ユーザー フォームを表示するためのプロシージャを記述します。
- ActiveX コントロールを追加します。
- ActiveX コントロールのプロパティを変更します。
- ActiveX コントロールのイベント ハンドラー プロシージャを記述します。
ユーザー フォームを使用すると、高度なフォーム機能を利用することもできます。 たとえば、プログラムでアルファベットの文字ごとに異なるオプション ボタンを追加したり、多数の日付と数字を含む一覧の項目ごとにチェック ボックスを追加したりできます。
ユーザーフォームを作成する前に、ニーズに合った Excel から利用できる組み込みダイアログ ボックスを使用することを検討してください。 これらの組み込みダイアログ ボックスには、VBA InputBox 関数と MsgBox 関数、Excel InputBox メソッド、 GetOpenFilename メソッド、 GetSaveAsFilename メソッド、および Application オブジェクトの Dialogs オブジェクトが含まれます。これにはすべての組み込み Excel ダイアログ ボックスが含まれています。
詳細については、 Microsoft Office Excel デベロッパー センターを参照してください。