VBA技術解説
VBAクラス入門:クラスモジュールの使い方を解説

ExcelマクロVBAの問題点と解決策、VBAの技術的解説
最終更新日:2022-06-29

VBAクラス入門:クラスモジュールの使い方を解説


VBAの学習を続けていくと、いずれ必ずクラスとかオブジェクト指向といった言葉に出くわします。
VBAクラスについて、基礎から実践応用まで解説していきます。


VBEの「挿入」の一番下にある「クラスモ ジュール」については、存在は知っていても使う機会が無かったかもしれません。
クラスは、このクラスモジュールを使って作ります。
そうして作ったクラスがオブジェクトになります。
VBAを理解する上で、クラスの理解やオブジェクト指向の理解は必ず役に立つはずです。

VBAクラス入門目次

VBAクラス入門:クラスとは?オブジェクト指向とは?
・オブジェクトとは ・オブジェクト指向とは ・カプセル化 ・オブジェクト指向とカプセル化とクラス ・クラスの必要性と利点 ・一般的なクラスに関する説明 ・クラスの比喩的説明 ・クラスの使い方 ・クラスを体験してみる ・クラスの使用例 ・クラス入門の最後に
クラスを使った全ブック(他ブック)のイベント補足
・WithEventsキーワード ・全体の機能と構成 ・VBAコード ・VBAコードの解説 ・標準モジュールでのクラスの使い方 ・アプリケーションのイベント一覧と調べ方 ・最後に
VBAクラスの作り方:列名の入力支援と列移動対応
・列挙体を使った列名表示の例 ・構造体を使った列名表示の例 ・クラスに関する基本のおさらい ・全体の機能と構成 ・シートに名前定義を設定 ・クラスを新規挿入 ・クラスに列数取得のプロシージャーと対象シートを受け取るプロパティを作成 ・クラスに列名のプロパティを作成 ・クラスの完成コード ・最後に
VBAクラスの作り方:列名のプロパティを自動作成する
・前回のVBAクラスの完成コード ・全体の機能と構成 ・クラスで、列名の入力支援と列移動対応するための手順 ・作成済のクラス(clsColumn)をエクスポートして雛形にする ・シートの列タイトルからクラスファイル(.cls)を出力 ・クラスファイル(.cls)のインポート ・全てを連続実行できるように変更 ・列番号のプロパティを自動作成するVBAの完成コード ・最後に
VBAクラスの作り方:独自Rangeっぽいものを作ってみた
・クラスの全VBAコード ・サンプルとして使うブックの構成 ・標準モジュールでの使い方 ・最後に
クラスを使って他ブックのイベントを補足する
・WithEventsキーワード ・全体の機能と構成 ・VBAコード ・VBAコードの解説 ・標準モジュールでのクラスの使い方 ・アプリケーションのイベント一覧と調べ方 ・最後に
クラスとイベントとマルチプロセス並列処理
・クラスとイベントとマルチプロセス並列処理の概要 ・VBAの全コード ・まとめと感想 ・最後に
クラスとCallByNameとポリモーフィズム(多態性)
・CallByName関数 ・クラスとCallByNameとポリモーフィズム(多態性)のVBAコード ・オブジェクト(クラス)も動的に変更すると ・最後に
オートフィルタを退避回復するVBAクラス
・オートフィルターに関するページ ・オートフィルターを退避回復するVBAクラスの概要 ・オートフィルターを退避し回復するクラスのVBAコード ・クラスを利用する標準モジュールのVBAコード ・処理の要点と解説 ・最後に
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス
・オートフィルタ退避回復クラスを複数シート対応させるVBAクラスのコード ・クラスを利用する標準モジュールのVBAコード ・最後に
コレクション(Collection)の並べ替え(Sort)に対応するクラス
・コレクション(Collection)の並べ替え(Sort)に対応する方法 ・コレクションの並べ替えに対応するクラスのVBAコード ・コレクションの並べ替えに対応するクラスの使い方 ・コレクションの並べ替えに対応するクラスの実行時間 ・最後に
VBAクラスのAttributeについて(既定メンバーとFor…Each)
・VBAクラスのエクスポートとインポート ・Attribute VB_PredeclaredId ・Attribute VB_Exposed ・Attribute [procName.]VB_Description ・Attribute variableName.VB_VarUserMemId ・Attribute procName.VB_UserMemId = 0 ・Attribute procName.VB_UserMemId = -4 ・VBAクラスのAttributeの最後に
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)
・Eventステートメント ・RaiseEventステートメント ・WithEventsキーワード ・標準モジュールと動作概要 ・ユーザーフォーム(UserForm1) ・クラス(clsEvent) ・クラスを使ったイベントの解説 ・VBAクラスを使ったイベントの最後に
VBAで音楽再生するクラスを作成
・APIの解説 ・VBAで音楽再生するクラスのVBAコード ・VBAで音楽再生するクラスの使用例 ・音楽プレーヤーを作成 ・VBAで音楽再生するクラスの最後に
図形を方程式で動かすVBAクラス
・クラスモジュールのVBA ・標準モジュールのVBA ・図形を方程式で動かすVBAの解説
PropertyのSetはLetでも良い
・VBAでプロパティを作成するステートメント ・オブジェクトならLetとSetのどちらでも良い ・実行結果 ・Getは適宜SetとSetを使い分ける必要があります ・PropertyのSetはLetでも良いの最後に

VBAクラス入門以外のクラス使用例

コントロールの動的作成|ユーザーフォーム入門
・コントロールの動的作成の動作説明 ・コントロールの表示/非表示を切り替える ・動的に部品コントロールを追加/削除する ・コントロールの動的作成の最後に
イベントプロシージャーの共通化|ユーザーフォーム入門
・サンプルのユーザーフォーム ・イベントプロシージャーの共通化のVBA ・イベントプロシージャーの共通化の問題点 ・イベントプロシージャーの共通化の雛形VBA ・イベントプロシージャーの共通化の最後に
イベントプロシージャーの共通化(Enter,Exit)
・イベントプロシージャーの共通化の問題点 ・問題解決した経緯 ・API:ConnectToConnectionPointについて ・ConnectToConnectionPointの使用例 ・イベントと対応するVB_UserMemIdの一覧とインポート用雛形 ・イベントプロシージャーの共通化の最後に
SQL入門:DB接続部分をクラスで作成しています
・DBとはSQLとは ・SQL入門の目次 ・SQLを使った既存サンプル
Excel将棋:マクロVBAの学習用
・Excel将棋の要件定義 ・Excel将棋のシート作成 ・Excel将棋の目次
VBAで「3Lと5Lのバケツで4Lの水を作る」を解く
・VBA問題:ツイートの記録 ・応募が無いのでアンケートを取ってみました ・回答をいただきました。 ・解き方考え方、そしてVBA実装方法:連ツイによる説明 ・作成したVBAの全コード ・VBAで「3Lと5Lのバケツで4Lの水を作る」を解いた結果 ・おまけ:アニメーションさせてみました

迷路にネコが挑戦したら、どうなるかな…
・ツイート ・ネコの絵文字 ・VBAソースコード
迷路ネコが影分身の術を体得したら…
・ツイート ・ネコの絵文字 ・VBAソースコード




新着記事NEW ・・・新着記事一覧を見る

スピルとは:スピル基礎から応用までの問題集|エクセル入門(2022-09-26)
リーグ表に対戦番号を振る|ツイッター出題回答 (2022-09-23)
スピルとは:旧関数でスピルを使う問題と解説|エクセル入門(2022-09-21)
スピルとは:スピル入門の問題と解説|エクセル入門(2022-09-16)
直積(クロス結合、交差結合)とピボット解除|エクセル入門(2022-09-08)
脱字メーカー(文字列から1文字削除)|ツイッター出題回答 (2022-09-05)
【VBA学習のお勧めコース】|VBA入門(2022-09-02)
振込手数料を先方負担にした時の振込金額と手数料の算出|ツイッター出題回答 (2022-09-01)
構成比を合計しても100%にならないと言われた…|ツイッター出題回答 (2022-09-01)
一覧から複数条件(部分一致、範囲)に合致するデータを抽出する|ツイッター出題回答 (2022-08-30)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.マクロって何?VBAって何?|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ