2009年06月13日

Excel VBA コントロールボックスとフォーム

Excel上に展開されているデータリストを
初心者でも使用しやすいようにボタンやチェックボックスなどを
使用したシートを構築しようと考えた。

デザインフォームを使用して、ポップアップウィンドウ上で
作るのでもよいのだが(この方がすぐにできそうだし?)
例えば、ある文字列やマクロ実行結果がエクセルシート上に
ある方が、コピペを含め色々便利かもしれないと思い、
シート上で作成することを決めた。

ちなみに自分はこういうコントロールI/Fの部分を作ったことが
ほとんどない。ちょっと前にasp.net の動作確認に使用したこと
くらいだろうか。
ってことで、ほとんどど素人みたいな悩みばかりでした。 1. フォームのオプションボタン(ラジオボタン)のグループ化
フォームウィンドウを出してオプションボタンを挿入する。
Excel2007 なら 開発=>挿入=>フォームコントロール
Excel2003 なら 表示 => ツールバー => フォーム
で出せます。

オプションボタンを作って
ある項目に対して、複数の候補を出し、その中で一つしか
選べないようにしたい。
で、項目も複数用意したかったのだけど、
ラジオボタンをいくつか追加して、各項目ごとに選ぼうとしても
そのままだと全ての項目の中で一つしか選択できない。
例えば、
・性別 男 女
・職業 自営業 会社員 学生 主婦 パート 無職
という項目があって、
『女、自営業』と二つ選びたくても、一つの項目(ex. 女)しかマークできない。
"自営業"を選択すると、"女" の選択が外れてしまう。
これの解決方法は簡単で同じフォームリストで"グループボックス"という
のがあるのでこれを挿入してグループ化してあげればよい。

2. VBAマクロとフォームのステータス
マクロ上から各オプションボタンのステータス(チェックがあるかないか)を
調べたかったのだがオブジェクトを取得する方法がわからなかった。
色々試して、クリックによる実行などはできるのだが他の関数から
ステータスを見ることができない。
色々悩んだ末に似たようなものに『コントロールボックス』という
のがあるのを発見。これにもオプションボタンは存在する。
というかかなりのツールが同じ・または似たようなアイコンで
機能は同じじゃないか?という気がする。
ただ、使ってみてコントロールボックスから挿入した
オプションボックスはマクロから無事呼び出せることが分かった。

ということでコントロールボックスを使用して作成することに変更。
フォームとの違いはなんだろうと思って検索してみると
様々なHPで親切に解説されていた。

『フォーム』は、古いバージョンのエクセル時代から存在している
エクセル専用コントロール、『コントロールボックス』は、Excel97以降
追加されている、ActiveX コントロールとのこと。
フォームの方が単純だが、できることは限られている。
コントロールの方が柔軟で色々できるとのことでした。
もっと知りたい方は検索してみるとすぐ見つかると思う。

ちなみにコントロールボックスはデザインモードを切り替えて使用する。

3. コントロールボックスのオプションボタン
まず困ったのがグループ化する方法。
『フォーム』と異なり、グループ化するツールが存在しない。
ふとプロパティを見てみたら"GroupName" という項目があり、
ここの名前が同じもの同士でチェックの有効・無効のやりとりができるようだ。

マクロから呼び出すのも異なるシートからだとオプションボックスのオブジェクト名
だけでは呼び出せなかった。(シート名を指定すればできるんだろうか?)
そのため、そのシート用のマクロを一つ作り、そこから他のマクロ関数を
呼び出すようにした。

この辺、読んでて意味不明な点が多々あると思うけど、
あくまで自分の備忘録として残す。


posted by maplewine at 12:39| Comment(0) | TrackBack(11) | VB | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

Adipex.
Excerpt: Adipex hurt me. How adipex works. Adipex. Adipex p. Adipex p free prescription. Adipex no prescripti..
Weblog: Adipex.
Tracked: 2009-09-12 08:22

Lipitor.
Excerpt: Side effects of lipitor drugs.
Weblog: Lipitor.
Tracked: 2009-09-12 09:29

Phentermine.
Excerpt: Phentermine no prescription. Buy phentermine online. Phentermine. Buy phentermine without prescripti..
Weblog: Phentermine pregnancy.
Tracked: 2009-09-15 00:25

Prozac soma zoloft prozac onlineprescription.md.
Excerpt: Soma sun pilates. Effects of soma. Soma seeds. Soma long term effects. Soma. Soma in urine.
Weblog: Soma.
Tracked: 2009-09-15 23:51

Lipitor side effects.
Excerpt: Lipitor.
Weblog: Generic lipitor.
Tracked: 2009-09-16 04:16

Soma.
Excerpt: Soma triathlon. Soma.
Weblog: Soma without rx.
Tracked: 2009-09-16 16:50

Singulair side effects.
Excerpt: Singulair. Generic singulair. Singulair side effects.
Weblog: Generic singulair.
Tracked: 2009-09-17 16:34

Soma muscle relaxant.
Excerpt: Soma. Prescription medication side effects for soma.
Weblog: Soma online sales.
Tracked: 2009-09-17 21:30

Acyclovir.
Excerpt: Acyclovir.
Weblog: Acyclovir.
Tracked: 2009-09-21 21:56

Vicodin.
Excerpt: Vicodin with no membership fees. Vicodin.
Weblog: Dangers of vicodin.
Tracked: 2009-09-22 11:55

Buy percocet online.
Excerpt: Buy percocet. Buy percocet no prescription. Buy percocet online.
Weblog: Buy percocet without a presription.
Tracked: 2009-09-22 12:05