2026年05月03日
YouTubeでVBAのクラス講座を見ていたのですが、文字列操作クラスにおいて便利な考え方として、「Factory関数」というものがあるのを知りました。
クラスのインスタンスを返すFunctionの事で、これを作成しておくとNewしなくても、いきなりクラスのメンバにアクセス出来るようになる訳です。
関数側で戻り値に返す前に引数を渡すようにしておけば、コンストラクタに引数を渡せないVBAでも、関数を使う側から見れば隠蔽されているので、引数を渡したのと同じ感覚で使える訳ですね。
シートのステータスを保持するようなクラスだと殆ど意味は無いですが、使い捨てのインスタンスをガンガン使うようなクラスではこの考え方は最高なのではないかと思いました。
インスタンスを戻り値として返しますが、すぐに関数を抜けて破棄されるので、ホント使い捨てのインスタンスですね。
VBAに限らずJavaScriptではよく使われる考え方みたいです。
こういう有意義な情報にはヨダレが出ますね。(^q^)
Posted at 2026/05/03 22:09:04 | |
トラックバック(0) |
プログラミング | 日記
2026年04月27日
人間という生物全体で見た時に、「私」の代わりはいくらでもいます。
思い通りにならない事って沢山あります。
好きな人と付き合えなかった。
行きたい大学に行けなかった。
希望する仕事に就けなかった。
子供ができなかった。
結婚できなかった。
なりたい顔ではなかった。
身長が伸びなかった。
自分という個人を尊重する気持ちは人間にとって大切です。
でも離れたところから見たら、この世界は私という人間がいようがいまいが関係無しに回ります。
絶対に同じような事をしている人間が他にいるし、自分がいなくても何も変わらないのです。
ただ、生物としてのサイクルを繰り返しているだけであり、いずれは私が存在していた事すら誰も知らなくなります。
宇宙空間を舞うチリのようなものです。
人が思い通りにならないと感じるのは、遺伝子にそう組み込まれているからです。
人間という種を保つ為にそう進化してきたからです。
人は希望を持って生きています。
しかし、いずれは死が訪れ、土になり、空気になり、私という存在を作り上げていた物質はバラバラに分解されて、私ではない別のものとして存在する事になります。
希望は気休めなのです。
希望が無ければそれは辛いでしょうが、死ぬまで希望を持てていれば幸いです。
自分の子供でも、それは自分とは別の個体です。
あの空を飛んでいる鳥は別の種かも知れませんが、元を辿れば同じ種から分岐して分かれたものです。
全てはバラバラなのであり、全ては一つだという事が同時に起こっているように感じかも知れません。
人間はどこかに真理のようなものがあると信じています。
しかし、真理は既にここにあるのかも知れません。
あるがままの世界が真理そのものなのかも知れません。
そして、自分という個が存在しているという事に保証はどこにも無いのです。
見えているもの、聞こえているもの、それが本当なのか嘘なのか、わかりません。
本当だと仮定する世界で生きているだけなのです。
飛躍してしまいましたが、家族という枠組み、会社という枠組み、社会という枠組み、その中では自分の存在意義を見出す事が出来ます。
しかし、そこから少しずつ離れていくと、自分の存在意義がない事に気付きます。
そうなれば理由付けする必要もありません。
あるがままの世界がそこにあるだけです。
Posted at 2026/04/27 22:10:12 | |
トラックバック(0) |
戯言 | 日記
2026年04月26日
主人公が輪廻する夢。
何度も生まれる事を繰り返す。
母の病気は主人公が仕掛けたもの。
脳が破壊されていく。
薬で進行を止めていた。
祖母の家。
家の前の道路にはみ出した車。
あの時見た誰かわからない優しいおじさんの家を探しに行く。
好奇心。
警察に補導をされ、やっと母の元へ帰れた。
涙を流す。
両親の2回目の結婚式。
初々しい緊張感。
人の姿から変形する魔物から逃げられた。
やっと橋を渡って、別の世界へ行ける。
輪廻から抜けられる。
幻想的な音楽。
思い出せる夢の断片です。
何度も生まれる事で、不思議な力を得る事ができ、母を牛耳ろうとしますが、毎回上手く行かない。
どうにかしてこの世界の秘密を暴こうと、それらしい人を追い掛けるけど、見失ってしまう。
父らしい人の母との2回目の結婚式で、全ての理由がわかって、いつもは襲われる魔物のいる場所を通り過ぎて、何とか橋を渡りきり、別世界へ入っていく。
もう輪廻する事はない。
自分はうつらうつらしてる時に、意図的に夢を走馬灯として思い出す事が出来るのですが、今回見た夢は初めてのような気がします。
誰かとの強い絆のようなものを感じる夢を時々みますが、これは絶対に現実では体験できないものです。
多分、オキシトシンが大量に出てるのでしょうが、自分は普段現実のものにそこまで愛情を感じる事はありません。
映画を見てる時に感動する事はありますが、夢で感じる時の方が遥かに強いです。
全てを任せられる安心感のような感覚は、もしかしたら私が幼い頃に体験していたのかも知れませんが、今は思い出せません。
それでも夢の中では時々ある不思議な感覚です。
Posted at 2026/04/26 05:59:26 | |
トラックバック(0) |
戯言 | 日記
2026年04月25日
まぁ、ユーザー定義型をDictionaryにぶち込めないという事が判明したので、結局クラスを作る事になった訳ですね。(ΦωΦ)
私がVBAを勉強し始めた頃には、ネット上にクラスモジュールの使い方が説明してあるサイトが沢山あったので、割とスムーズにクラスの概念を理解出来たのですが、一昔前まではあまり無かったみたいです。
まぁ、VBAはなんちゃってオブジェクト指向なので、JAVAとかPythonみたいなちゃんとしたプログラミング言語に比べてる色々出来ない事があります。
ただ、ちょっと複雑な事をやろうと思ったら、標準モジュールだけでやろうとしたら膨大な量のコードになるのを、クラスモジュールでやれば凄くシンプルに出来るのはわかるような気がします。
私はただの独学で見様見真似でやってるだけなので、ガチ勢が書くコードは見た事がありません。
凄そうなのは大体ロックがかけてあるし、身の回りでもクラスモジュールを使ったプロジェクトは見た事がありません。
海外の本でクラスモジュールについて書いてある良本があるみたいなんでいつか見てみたいものです。
VBAはエクセルの自動化で複雑なコードを書かなくても目に見えるものが作れるので、プログラミング言語の中では敷居は低いと思います。
そこら中にVBAについての参考書が置いてありますが、ホント基礎的な事しか書いてない書籍ばかりなんですよね。
クラスについて書いてある本がほぼ無い!
使わないと覚えないので、積極的にクラス使いましょう。
Posted at 2026/04/25 23:54:26 | |
トラックバック(0) |
プログラミング | 日記
2026年04月19日
VBAでユーザー定義型(構造体)にエクセル表の取得した列番号を順番に入れていきたい。
For文で回せるようにコレクションかディクショナリーを利用したい。
しかし、コレクションはアイテムの値を後から変更出来ないので、ディクショナリーを利用する事にする。
キーに見出し名、アイテムに代入する構造体のメンバを指定したい。
と思ったら、そもそもディクショナリーにユーザー定義型は入れられないようです。
クラスモジュールでやれば、ユーザー定義型と違い、参照渡しが出来るので、やりたい事は可能のようです。
配列でやるのが簡単なんですけど、キーもアイテムも無い配列では可読性が悪過ぎて、後で見た時に何やってるのかわからないコードになると思います。
まぁ、ディクショナリーで取得した値を、別途ユーザー定義型に代入するコードを追加すれば良いので、こちらでやろうと思います。
始めからクラスモジュールでやっていれば、何も問題無かったのですが、面倒臭がってユーザー定義型で済ませようと思ったのが原因ですね。
勉強になりました。
Posted at 2026/04/19 16:02:40 | |
トラックバック(0) |
プログラミング | 日記