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 イメージコントロールをアニメーションのように動かす 索引 サンプルファイル