- Home »
- Excel講座の総目次 »
- Excel基本講座の目次 »
- フォーム コントロール
スポンサードリンク
(追記) (追記ここまで)
(追記) (追記ここまで)
- チェックボックスやオプションボタンなどをシートに貼付けて利用する方法の一例です。
コントロール ツールボックスにも同じようなボタンがありますが、ここで使用するのはフォームのボタンです。
- Excel2010以降での使い方は フォームコントロールの使い方 からご覧ください。
- 【完成例】
- C:G列にチェックボタンなどの入力値を選択して、[入力]ボタンでSheet2へ入力します。
- A:B列は作業列として使用しています。これらはマクロでの処理を極力簡易にするためにシートでほとんどの処理をしています。
- 複数の選択肢から 1 つだけを選択するときに使用します。
- グループボックスを利用してグループ別に制御することが出来ます。
- 【操作方法】
- [表示]→[ツールバー]→[フォーム]を選択して、[フォーム]ツールバーを表示します。
- ツールバーのオプションボタンをクリックし、シート内をクリックすると、オプションボタンが配置されます。
- 文字部分をクリックして、カーソルを表示すれば文字を修正できます。
例では「男性」「女性」に変更しました。
- この2つのオプションボタンで1セットになるのでグループ化します。
ツールバーのグループボックスボタンをクリックし、オプションボタン2個を囲みます。
- オプションボタンの書式設定をします。
- オプションボタンを右クリックし、[コントロールの書式設定]を選択します。
- リンクするセルに「B3」セルを指定します。
女性の方のオプションボタンはグループ化されているので、自動的に「B3」に設定されます。
オプションボタンのON,OFFの状態をB3セルに入力するということです。
- ここの例では2こ配置していますので、どちらがONになっているか数値が入力されます。
男性なら1,女性なら2となります。
- 同様に年齢の区分をオプションボタンで作成します。
リンクするセルはB6とします。
- オプションのONとOFFを切り替えます。
チェックが入っている時はTRUE、入っていない時はFALSEが返ります。
- ツールバーのチェックボタンをクリックし、シート内へ配置します。
リンクするセルはB8とします。
- 値を増減することが出来ます。
上向きの矢印をクリックすると値が増加し、下向きの矢印をクリックすると値が減少します。
- 【操作手順】
- ツールバーのスピンボタンをクリックし、シート内へ配置します。
- 設置したスピンボタンを右クリックし、[コントロールの書式設定]を選択します。
最小値1,最大値12,変化の増分1,リンクするセルD11とします。
- D11セルを選択し、[書式]→[セル]で表示形式を「G/標準"月"」とし、左揃えにしました。
- スピンボタンでは最小値と最大値は0〜30000の範囲が設定できます。
- 基準を本日「TODAY()」にして、スピンボタンで日付を上げ下げするには?
- スピンボタンの書式設定を現在値:15000、最小値:0、最大値:30000、変化の増分:1、リンクするセル:A2 とします。
- 表示するB2セルには=TODAY()+A2-15000 として、現在値を基準に上下できるようにします。
-
- ドロップダウン リスト ボックスに項目が表示でき、選択した項目の番号が返されます。
- 【操作手順】
- 表示するリストをH13:H20に入力しておきます。
- ツールバーのコンボボックスをクリックし、シート内へ配置します。
- 設置したコンボボックスを右クリックし、[コントロールの書式設定]を選択します。
入力範囲H3:H20,リンクするセルB14,ドロップダウンリストの行数8とします。
- リストを表示し、選択した項目の番号が返されます。
- 【操作手順】
- ツールバーのリストボックスをクリックし、シート内へ配置します。
- 設置したリストボックスを右クリックし、[コントロールの書式設定]を選択します。
入力範囲H3:H20,リンクするセルB17,選択の種類を「単一選択」とします。
- リストを表示し、選択した項目の番号が返されます。
- 【操作手順】
- ツールバーのボタンをクリックし、シート内へ配置します。
「入力」と文字を変更します。
- マクロの登録ダイアログが表示されますが、この段階では登録しないので「キャンセル」ボタンで閉じます。
(追記) (追記ここまで)
- B列に返された値をマクロのコードでそれぞれの値に変換しても良いのですが、ここでは理解しやすくするためにシート内で処理します。
- 「性別」はB3の値が1なら男性、2なら女性となるようにします。
=CHOOSE(B3,"男性","女性") または=IF(B3=1,"男性","女性")
- 「年齢」は同様に=CHOOSE(B6,"10〜29歳","30〜49歳","50歳以上")
- 「振込済み」は=IF(B8,"済","未")
- 「誕生月」は=D11
- 「第1希望」は=INDEX($H13ドル:$H20,ドルB14)
- 「第2希望」は=INDEX($H13ドル:$H20,ドルB17)
としました。
- ボタンをクリックするとシート2へデータを蓄積する仕組みにします。
- [Alt]+[F11]でVBEを開きます。
または、メニューバーの[ツール]→[マクロ]→[Visual Basic Editor]を実行します。
- VBEのメニューバーの[挿入]→[標準モジュール]を実行します。Module1が追加されます。
- VBA ProjectのModule1が選択されているのを確認し、右の枠内に以下のコードを入力します。
A列に数式で値を返しているので、単純にA列の値をシート2へ入力するコードにしています。
Sub 入力()
Dim LastRow As Long
With Worksheets("Sheet2")
LastRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & LastRow).Value = Worksheets("Sheet1").Range("A3").Value
.Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value
.Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A8").Value
.Range("D" & LastRow).Value = Worksheets("Sheet1").Range("A11").Value
.Range("E" & LastRow).Value = Worksheets("Sheet1").Range("A14").Value
.Range("F" & LastRow).Value = Worksheets("Sheet1").Range("A17").Value
End With
End Sub
- 下図のような状態になります。
- コードの入力が終了したらVBEを[閉じる]ボタンをクリックして閉じます。
- このVBEへ入力したマクロを「入力」ボタンに登録します。
- 「入力」ボタンを右クリックし、右クリックメニューの「マクロの登録」を選択します。
- マクロの選択でマクロ「入力」を選択肢[OK]ボタンをクリックします。
- 各項目を選択して「入力」ボタンをクリックすると、Sheet2へは下図のように入力されます。
セルの書式を整える Topへ
- C1:G22を選択し、塗りつぶし(パターン)で色を付けます。
下図では影付きスタイルや、3-D表示を使っています。
- A:B,H列が目障りなのでフォントの色を「白」にすれば見えなくなります。
- [入力]ボタンを実行して、別シートにデータを転送後にフォームに設置した各フォームの値を元に戻します。
スポンサードリンク
(追記) (追記ここまで)
(追記) (追記ここまで)
よねさんのWordとExcelの小部屋|
Excel(エクセル)講座の総目次|
Excel(エクセル)基本講座の目次|フォーム コントロール
PageViewCounter
Counter
Since2006/2/27