Excelには、様々なプロパティや、メソットが用意されています。
では、Exxcelに、車というプロパティやメソットはよういされていますでしょうか?
無いです。当然、おにぎりというプロパティもありません。
目次
Excelでおにぎりを作ってみる
こんにちは。伊川(@naonaoke)です。
今回は、クラスモジュールについて説明をします。
多分、クラスモジュールに関しては、仕切りの高いと思われがちです。
私も、動画で質問が来てから、なんとなくしか理解していません。
検索をしている中で、とても、いい情報を見つけたので紹介します。
本日の内容は、ほぼ丸パクリです。
上記のサイトを参考にさせていただきました。
この場を借りてお礼を申し上げます。
このブログはこんな人にお勧め
- クラスモジュールってなに?って言う人
- クラスモジュールの情報がなくて困っている人
- クラスモジュールの仕切りが高い人
このブログを、読み終わるころには・・・・
クラスモジュールでは、よく、たい焼きの話が例えになりますが、動画内では、たい焼きをおにぎりにかえて説明しています。
参考になれば幸いです。
クラスモジュール
クラスモジュールについては、設計図、オブジェクト指向、カプセル化、承継という内容で説明されています。
この辺から、私は、何を言っているのか理解できませんでした。
しかし、クラスモジュールを利用すると、とても便利ということしか記載がありません。
また、クラスモジュールを説明している書籍も少なく、良書は、絶版にもなっており、非常に検索しにくいのが現状です。
しかし、そんなに便利なモノなら、利用してみたいと思うのが人情ですね。
では、クラスモジュールについて説明をします。
オブジェクト指向。
つまり
自分で、オブジェクトを作っちゃえって内容です。
クラスモジュール 作業手順 その1 データベース確認
おにぎりのデータベースです。
関西圏では、おにぎりを作るときは、俵型のようですね。
ご視聴者様からの回答です。
アダムの分身猫たちのしもべさんからの回答
配信ありがとうございます😊
関西ですが基本は三角、お弁当に入れる時は俵ですね。
クラスモジュールは、Excelと相性がいいようです。
下記の書籍で説明されています。
このデータベースをもとに、形で、呼出をしたいと思います。
クラスモジュール 作業手順 その2 設計図を書く
下記の内容をクラスモジュールに記載します。
Public 形 As String Public 具材 As String Public 米の量 As String Public 海苔の素材 As String Public 塩 As String Public 販売先 As String Public Property Get Self() As おにぎり Set Self = Me End Property
おにぎりという名の設計図です。
その設計図の中に、おにぎりの部品なるものを記載します。
Public 形 As String
このような感じでしょうか
Public Property Get Self() As おにぎり
Set Self = Me
End Property
この部分に関しては、おにぎりを呼び出すときに使うコードです。
このように記載をしておくことで、プロパティが作成されます。
余談
これは、ACCESSの入力フォームのVBEの画面です。
ACCESSクラスオブジェクトの階層下にForm_F_入力とありますね。
クラスモジュール 作業手順 その3 標準モジュールに記載するコード
Enum 列 形 = 1 具材 米の量 海苔の素材 塩 販売先 End Enum Sub おにぎり販売() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("Sheet1") Dim おにぎり As New Collection Dim i As Long For i = 2 To 100 With New おにぎり .形 = sh.Cells(i, 列.形) .具材 = sh.Cells(i, 列.具材) .米の量 = sh.Cells(i, 列.米の量) .海苔の素材 = sh.Cells(i, 列.海苔の素材) .塩 = sh.Cells(i, 列.塩) .販売先 = sh.Cells(i, 列.販売先) おにぎり.Add .Self End With Next i Dim p As おにぎり i = 1 For Each p In おにぎり If p.具材 = "ツナマヨ" Then Sheets("Sheet2").Range("A" & i & ":F" & i).Value = _ Array(p.形, p.具材, p.米の量, p.海苔の素材, p.塩, p.販売先) i = i + 1 End If Next End Sub
このようなコードを記載します。
呼び出した結果を、Sheet2転記します。
クラスモジュール 作業手順 その4 セルへ転記するときのコード
Sheets(“Sheet2”).Range(“A” & i & “:F” & i).Value = _
Array(p.形, p.具材, p.米の量, p.海苔の素材, p.塩, p.販売先)
この部分に関しては、Yahooの知恵袋で教えてもらいました。
クラスモジュールの値を、セル上に表記するという経験がないので、皆目見当もつきませんでした。
形を三角で呼び出すと、上記のような結果が得られます。呼び出す値を、ツナマヨに変更すると、上記のような結果が得られます。
クラスモジュール 作業手順 その5 クラスモジュールの理解の方向性
まず、オブジェクト指向とは、自分でオブジェクトを作成しなさいという意味でしょう。
実際に私は、おにぎりという名のオブジェクを作成しました。
たしかに、今回のプログラムに関しては、楽になったような気がします。
でもまだ、こんなもんじゃないと思います。
達人たちが便利といっているのでもっと便利だと思います。
VBAの書籍で、クラスモジュールを説明している数少ない書籍です。
ここがポイント
今回はクラスモジュールについて、説明しました。
なんとなくですが、少しずつ理解できてきたような気がします。
まだまだ、ハードルは高いと思いますが、パクリでもなんでもいいので、この知識はなんとしても習得したいと思っています。
まとめ
今回は、動画でも公開しましたが、おにぎりを作るところが一番重要です。
これが、クラスモジュールについて、一般的な解説です。
しかし、まだまだです。
もっとわかりやすい説明をしたいと思っています。
今回のサンプルファイルは、No249です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。