#menu(menu-pc):
***フォーム コントロールの使い方 [#x9288ee1]
Excel2007(エクセル2007)基本講座:フォーム
コントロールの使い方
Excel2007ではフォームは開発タブから利用できます。
このページはフォームコントロールの使い方を説明しています。
#contents
***開発タブを表示する [#v6b28a90]
Officeボタンをクリックし、[Excelのオプション]ボタンをクリックします。
[基本設定]の「[開発]タブをリボンに表示する」にチェックを入れます。
&ref(form01.png,nolink,画像の説明,100%);
[開発]タブの[コントロール]グループにある[挿入]から[フォームコントロール]を選択できます。
&ref(form02.png,nolink,画像の説明,100%);
***フォームについて [#zf3f0ef1]
チェックボックスやオプションボタンなどをシートに貼付けて利用する方法の一例です。
ActiveX コントロールにも同じようなボタンがありますが、ここで使用するのはフォーム コントロールです。
【完成例】
C:G列にチェックボタンなどの入力値を選択して、[入力]ボタンでSheet2へ入力します。
A:B列は作業列として使用しています。これらはマクロでの処理を極力簡易にするためにシートでほとんどの処理をしています。
&ref(form22.png,nolink,画像の説明,80%);
***オプションボタン [#rd2d8978]
複数の選択肢から 1 つだけを選択するときに使用します。
グループボックスを利用してグループ別に制御することが出来ます。
【操作方法】
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[オプションボタン]を選択します。
&ref(form03.png,nolink,画像の説明,100%);
シート内をクリックすると、オプションボタンが配置されます。
&ref(form04.png,nolink,画像の説明,100%);
文字部分をクリックして、カーソルを表示すれば文字を修正できます。
例ではオプションボタンを2個配置し、「男性」「女性」に変更しました。
&ref(form05.png,nolink,画像の説明,100%);
この2つのオプションボタンで1セットになるのでグループ化します。
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[グループボックス]を選択します。
オプションボタン2個を囲むように配置します。
&ref(form06.png,nolink,画像の説明,100%);
オプションボタンの書式設定をします。
オプションボタンを右クリックし、[コントロールの書式設定]を選択します。
&ref(form07.png,nolink,画像の説明,100%);
リンクするセルに「B3」セルを指定します。
女性の方のオプションボタンはグループ化されているので、自動的に「B3」に設定されます。
オプションボタンのON,OFFの状態をB3セルに入力するということです。
ここの例では2こ配置していますので、どちらがONになっているか数値が入力されます。
男性なら1,女性なら2となります。
&ref(form06.png,nolink,画像の説明,100%);
同様に年齢の区分をオプションボタンで作成します。
リンクするセルはB6とします。
グループボックスの名前を「性別」「年齢」にそれぞれ書き換えます。
&ref(form08.png,nolink,画像の説明,100%);
***チェックボックス [#b42e6c35]
オプションのONとOFFを切り替えます。
チェックが入っている時はTRUE、入っていない時はFALSEが返ります。
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[チェックボタン]を選択し、シート内へ配置します。
チェックボタンを右クリックし、[コントロールの書式設定]を選択します。
リンクするセルはB8とします。
&ref(form09.png,nolink,画像の説明,100%);
***スピンボタン [#y4bf16c7]
値を増減することが出来ます。
上向きの矢印をクリックすると値が増加し、下向きの矢印をクリックすると値が減少します。
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[スピンボタン]を選択し、シート内へ配置します。
設置したスピンボタンを右クリックし、[コントロールの書式設定]を選択します。
現在値6,最小値1,最大値12,変化の増分1,リンクするセルD11とします。
&ref(form10.png,nolink,画像の説明,100%);
D11セルを選択し、[ホーム]タブの[表示形式]→[その他の表示形式]からユーザー定義で「0"月"」とし、中央揃えにしました。
&ref(form11.png,nolink,画像の説明,100%);
スピンボタンでは最小値と最大値は0~30000の範囲が設定できます。
基準を本日「TODAY()」にして、スピンボタンで日付を上げ下げするには?
スピンボタンをC2セルに配置します。
スピンボタンの書式設定を現在値:15000、最小値:0、最大値:30000、変化の増分:1、リンクするセル:A2 とします。
表示するB2セルには=TODAY()+A2-15000 と入力します。
B2セルの表示形式は「長い日付形式」にしています。
これで、スピンボタンの上下でA2の値が上下し、これに連動してB2の日付も上下します。
&ref(form12.png,nolink,画像の説明,100%);
***コンボボックス [#j2a6073c]
ドロップダウン リスト ボックスに項目が表示でき、選択した項目の番号が返されます。
表示するリストをH13:H20に入力しておきます。
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[コンボボックス]を選択し、シート内へ配置します。(例ではD13セルの付近へ配置しています)。
設置したコンボボックスを右クリックし、[コントロールの書式設定]を選択します。
入力範囲H13:H20,リンクするセルB14,ドロップダウンリストの行数8とします。
&ref(form13.png,nolink,画像の説明,100%);
***リストボックス [#nc3df598]
リストを表示し、選択した項目の番号が返されます。
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[リストボックス]を選択し、シート内へ配置します。
設置したリストボックスを右クリックし、[コントロールの書式設定]を選択します。
入力範囲H13:H20,リンクするセルB17,選択の種類を「単一選択」とします。
&ref(form14.png,nolink,画像の説明,100%);
***ボタン [#caea3569]
リストを表示し、選択した項目の番号が返されます。
【操作手順】
[開発]タブの[コントロール]グループにある[挿入]を選択して、フォームコントロールの[ボタン]を選択し、シート内へ配置します。
ボタン内の文字列を「入力」と書き換えます。
&ref(form16.png,nolink,画像の説明,100%);
マクロの登録ダイアログが表示されますが、この段階では登録しないので「キャンセル」ボタンで閉じます。
***数式の設定 [#z071a120]
B列に返された値をマクロのコードでそれぞれの値に変換しても良いのですが、ここでは理解しやすくするためにシート内で処理します。
A3セル「性別」はB3の値が1なら男性、2なら女性となるようにします。
=CHOOSE(B3,"男性","女性") または=IF(B3=1,"男性","女性")
A6セル「年齢」は同様に=CHOOSE(B6,"10~29歳","30~49歳","50歳以上")
A8セル「振込済み」は=IF(B8,"済","未")
A11セル「誕生月」は=D11
A14セル「第1希望」は=INDEX($H$13:$H$20,B14)
A17セル「第2希望」は=INDEX($H$13:$H$20,B17)
としました。
フォームコントロールでの選択結果がA列に返されるようになりました。
&ref(form15.png,nolink,画像の説明,100%);
***シートへの入力マクロ [#x1813a1a]
[Alt]+[F11]でVBEを開き、標準モジュールを挿入します。
&ref(form18.png,nolink,画像の説明,100%);
標準モジュールに下記のようなコードを入力します。
A列に数式で値を返しているので、単純にA列の値をシート2へ入力するコードにしています。
&ref(form17.png,nolink,画像の説明,100%);
このマクロを「入力」ボタンに登録します。
「入力」ボタンを右クリックし、右クリックメニューの「マクロの登録」を選択します。
マクロの選択でマクロ「入力」を選択肢[OK]ボタンをクリックします。
&ref(form19.png,nolink,画像の説明,100%);
各項目を選択して「入力」ボタンをクリックすると、Sheet2へは下図のように入力されます。
&ref(form20.png,nolink,画像の説明,100%);
***セルの書式を整える [#tf401878]
[ホーム]タブの[塗りつぶしの色]でC2:G19セルをグレーに塗りつぶしてみました。
また、[正方形/長方形]で塗りつぶしなしで枠線のみを描画し影の効果を付けてみました。
&ref(form21.png,nolink,画像の説明,80%);
A:B,H列が目障りなのでフォントの色を「白」にすれば見えなくなります。
&ref(form22.png,nolink,画像の説明,80%);