Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール
知りたいがすぐわかる! やりたいがすぐできる!
本を執筆しました(Kindle版)
ユーザーフォームとコントロールをこれから学ぶ方、慣れていない方はいませんか。
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
知りたいこと、やりたいことから、実践につながる具体例とポイントを紹介します。
【対象】
ExcelVBA 初学者~中級者
より深くユーザーフォーム・コントロールについて学びたい方
OS:Windows
Excel:VBAマクロを使用できるもの
※ 第1章~第5章まで公開しています
購入:amazon
著者より
ユーザーフォームを初めて表示した時、すごく感激したことを覚えています。ただフォームを表示しただけでしたが、なんだか自分のVBAのレベルが上がったように感じたものでした。
そこからフォームとコントロールを使いこなせるようになるには、少なくない時間を要することになりました。
ユーザーフォームや様々なコントロールの、プロパティ・メソッド・イベント等の知識や理解もそうですが、それらをどのように利用し、どのように連携させると良いかといった部分に時間を要しました。
その経験から、短時間でフォームやコントロールの理解を深め、よりよく活用できる方法を考え、フォームやコントロールのやりたいことから、「逆引き」で探し学べる書籍を執筆することにしました。
各項目に対応したサンプルファイルを準備しましたので、実際に動かしながらプロパティやメソッド、イベント等の理解を深め、使い方のポイントを学べるようになっています。
目次
第1章 ユーザーフォーム
1-1 ユーザーフォームを挿入する
・準備
・フォームの挿入
1-2 フォームを表示する
・標準モジュールの挿入
・フォーム表示のコード(標準モジュール)
・サンプルコード
1-3 セルを選択できる状態で表示する
・モーダル(Modal)
・モードレス(Modeless)
◇モードレスの設定
・サンプルコード
・vbModalとvbModelessのマクロの挙動の違い
【補足情報】vbModal/vbModeless
【補足情報】組み込み定数
1-4 フォームを複数表示する
・モーダル形式で複数表示
・モードレス形式で複数表示
・複数のフォームを行き来しながらの操作
コラム① プロパティとは?
1-5 フォームの表示位置を設定する
・Excelアプリケーションの左上隅に合わせてフォームを表示
・セル[B3]の位置に合わせてフォームを表示
【補足情報】ポイントとピクセル
1-6 フォームを表示せずに読み込む
1-7 フォームを非表示にする
1-8 フォームを破棄する
【補足情報】図解:フォームの読み込み・表示・非表示・破棄
コラム② 「Me」とは?
1-9 フォームの表示・非表示を確認する
1-10 フォームのサイズを変更する
・デザインモードでの設定
・プロパティウィンドウでの設定
・プログラムでの設定
1-11 タイトルバーの文字列を変更する
1-12 フォームの背景色を設定する
【補足情報】16進数での色の表示
1-13 クライアント領域に枠線を表示する
1-14 枠線の色を変える
1-15 フォームの背景に画像を設定する
1-16 背景画像のサイズモードを設定する
1-17 背景画像の位置を設定する
1-18 背景画像を敷き詰める
1-19 追加するコントロールのデフォルトのフォントを設定する
1-20 クライアント領域の高さ・幅を取得する
1-21 フォーム上でマウスポインタの形を変更する
・カスタムアイコン
1-22 フォームを無効にする
1-23 フォーム内のフォーカスを持っているコントロールを取得する
1-24 枠のスタイルを設定する
1-25 フォーム上のコントロールのコレクションを取得する
1-26 フォームの表示倍率を変更する
1-27 フォームを再描画する
1-28 ユーザーフォームを印刷する
1-29 フォームの移動とサイズ変更を同時にする
コラム③ イベントとは?
1-30 フォームの全イベントを確認する
1-31 [×]ボタンでクローズさせない
1-32 キーボードの特定のキーを押した時だけ処理を行う
1-33 フォームやコントロールに初期値を設定する
1-34 フォームがアクティブになったらExcelを非表示にする
1-35 キーが押されている間フォームを移動する
1-36 特定のキー操作でのみメッセージを表示する
1-37 マウスが押された位置を表示する
1-38 マウスポインタの位置によってフォームの色を変更する
1-39 フォームにコントロールを追加する
・デフォルト以外のコントロールの追加
1-40 複数のコントロールをまとめて操作する
・整列
・同じサイズに揃える
・グループ化
1-41 オブジェクトの名前を変更する
コラム④ イベントの順番
第2章 コントロール共通のプロパティ・メソッド・イベント
コラム⑤ コントロールのタイプ
2-1 基本的なコントロールに共通のプロパティを確認する
・コントロールの背景色を設定する
・ツールヒントを設定する
・コントロールを無効にする
・コントロールのサイズを変更する
・コントロールの位置を設定する
【補足情報】Top/Leftプロパティの基準
【補足情報】コンテナ
・異なるコントロールをグループ化する
・コントロールを非表示にする
2-2 基本的なコントロールに共通のメソッドを確認する
・コントロールの位置とサイズを変更する Moveメソッド
・コントロールにフォーカスを移す SetFocusメソッド
・コントロールの重なりを設定する ZOrderメソッド
2-3 タイプ別コントロールのプロパティを確認する
・キー操作でコントロールをクリックする
・コントロールの内容に応じてサイズを自動調整する
・コントロールの枠線を色変更し表示する
・コントロールの見出しを設定する
・コントロールのフォント・フォント色を設定する
・コントロール上のマウスアイコンを変更する
・コントロールに画像を設定する
・コントロールに設定した画像の位置やサイズを設定する
・コントロールに挿入した画像と見出しの位置を設定する
・コントロールの表示スタイルを変更する
・フォーカスが移る順番を指定する
・見出しやテキストの表示位置を設定する
・値を取得する
・テキストを折り返して表示する
2-4 タイプ別コントロールの主なイベントを確認する
◇インプットタイプ
・AfterUpdateイベント
・BeforeUpdateイベント
◇フォーカスを受け取れるタイプ
・Enterイベント
・Exitイベント
【補足情報】コントロール共通イベントの発生順番
◇コンテナタイプ
・AddControlイベント
【補足情報】Addメソッド
・RemoveControlイベント
【補足情報】Removeメソッド
・Layoutイベント
・Scrollイベント
【補足情報】リクエストした距離と実際に移動した距離
第3章 TextBoxコントロール
3-1 最大文字数を設定する
3-2 最大文字数を入力したら次のコントロールに自動でフォーカスを移す
3-3 セルとテキストボックスを紐づける
3-4 テキストボックス内でのドラッグ&ドロップを有効にする
3-5 テキストボックスにフォーカスが移るときに最後にアクティブだった選択を使用する
3-6 Enterキーを押したら新しい行を作成する
3-7 複数行にわたりテキストを入力する
3-8 フォーカスが抜けてもテキスト選択表示状態を保つ
3-9 半角英数←→ひらがな等IMEを自動で切り替える
3-10 選択は可能で編集は不可能にする
3-11 パスワードのようにテキストを「*」でマスクし隠す
3-12 スクロールバーを表示しバー操作でテキストを確認する
3-13 テキストボックスの左端にその行を選択できる余白を挿入する
3-14 テキストボックスにタブ文字を挿入する
3-15 テキストを取得・設定する
3-16 行数を調べる
3-17 選択しているテキストを取得・置換する
3-18 指定の文字数テキストを選択する
第4章 ComboBoxコントロール
4-1 リストにセル範囲を設定する
4-2 リストに項目を追加する
4-3 リストの項目を削除する
4-4 リストを設定する
4-5 ドロップダウンリストとして利用する
4-6 選択項目を取得する・VLOOKUP関数のように使用する
4-7 複数列を表示する
4-8 見出しを表示する
4-9 指定した列のテキストをテキストボックス部に表示する
4-10 列の幅を調整する
4-11 リストの項目を検索する
4-12 入力できる文字列を制限する
4-13 ドロップダウンボタンを表示しない
4-14 選択した項目のIndex番号を取得する
4-15 リストに表示する最大行数を設定する
4-16 リストの項目数を取得する
第5章 ListBoxコントロール
5-1 リストにセル範囲を設定する
5-2 リストに項目を追加する
5-3 リストの項目を削除する
5-4 リストを設定する
5-5 リストをオプションボタンスタイルで表示する
5-6 選択項目を取得する・VLOOKUP関数のように使用する
5-7 複数列を表示する
5-8 見出しを表示する
5-9 指定した列のテキストを取得する
5-10 列の幅を調整する
5-11 選択した項目のIndex番号を取得する
5-12 複数選択を可能にする
5-13 複数選択した項目を取得する
5-14 リストの項目数を取得する
第6章 Frameコントロール
6-1 フォーカスをフレーム内で循環する
6-2 スクロールバーでフレーム内を広く活用する
6-3 フレームの表示倍率を変更する
6-4 フレームを再描画する
6-5 フレームにコントロールを追加・削除する
第7章 MultiPageコントロール
7-1 ページを追加・削除する
7-2 選択ページを取得する
7-3 任意のページを選択する
7-4 ページの数をカウントする
7-5 タブの高さ・幅を設定する
7-6 タブをボタンスタイルにする
7-7 タブの表示位置を変更する
7-8 スクロールバーを表示して利用する
7-9 フォーカスをページ内で循環する
7-10 ページにコントロールを追加・削除する
第8章 TabStripコントロール
8-1 ページ(タブ)を追加・削除する
8-2 選択ページを取得する
8-3 任意のページを選択する
8-4 ページ(タブ)の数をカウントする
8-5 タブの高さ・幅を設定する
8-6 タブをボタンにする
8-7 タブの表示位置を変更する
8-8 タブを複数行で表示する
第9章 その他のコントロール
9-1 OptionButtonコントロール
・複数のグループに分ける
・セルと紐づける
・値を取得する
9-2 CheckBoxコントロール
・複数のグループに分ける
・セルと紐づける
・値を取得する
・3つの値を切り替える
9-3 RefEditコントロール
・セル参照モードに切り替える
・セル範囲を参照する
・予めセル範囲を設定する
9-4 ScrollBarコントロール
・最大値・最小値を設定する
・スクロール量を設定する
・縦配置・横配置を設定する
・ボタンを押しっぱなしにした時のイベント遅延時間を設定する
・スクロールボックスのサイズを固定する
9-5 SpinButtonコントロール
・最大値・最小値を設定する
・縦配置・横配置を設定する
・ボタンを押しっぱなしにした時のイベント遅延時間を設定する
9-6 ToggleButtonコントロール
・On/Offの状態をセルと紐づける
・設定できる値を3つ(True/False/Null)にする
9-7 CommandButtonコントロール
・[Enter]キーに対応したボタンにする
・[ESC]キーに対応したボタンにする
・クリックでフォーカスを移さない
9-8 Labelコントロール
9-9 Imageコントロール
第10章 フォーム・コントロールの応用・サンプル
10-1 クラスを紐づける
・クラスモジュールの追加
・クラスとコントロールを紐づける
・オリジナルのプロパティを追加する
・複数のコントロール共有のイベント作成
・クラスモジュールを更に詳しく
10-2 フリーズするマクロを処理できるようにする
10-3 マクロを途中で中止できるようにする
10-4 プログレスバーを作成する
10-5 特定のコントロールをマウスに合わせて動かす
10-6 フォーム上でオリジナルの右クリックメニューを作成する
10-7 セルの背景色をRGBで表示する
10-8 イメージコントロールをドラッグ&ドロップで移動できるようにする
10-9 イメージコントロールをアニメーションのように動かす
索引
サンプルファイル