VBAクラス・モジュール

Worksheetクラスを継承したクラスを作る(7)

Worksheetクラスを継承したクラスを作る(7) ここまでの経緯はコチラからどうぞ。 Moveメソッドのオーバーライドw いよいよMoveメソッドにまでたどり着いた。思えば遠くへ来たもんだ。 もともとSub、すなわち返り値なしのメソッドだが、Copyメソッド同様、移…

Worksheetクラスを継承したクラスを作る(6)

Worksheetクラスを継承したクラスを作る(6) 地味~に作業を続けています。 これまでの栄光の軌跡は、コチラをどうぞ。 ExportAsFixedFormatメソッドの実装時に小ハマり ついにExportAsFixedFormatまでたどりついた。 オブジェクト ブラウザーに、 Sub Export…

Worksheetクラスを継承したクラスを作る(5)

Worksheetクラスを継承したクラスを作る(5) 過去記事はコチラから。 おなじみ、PoweredSheetクラスに、Cellsプロパティとか、Columnsプロパティを実装するのがむつかしいなーと思っていたのだが、 akashi-keirin.hatenablog.com コチラへのことりちゅん (id:…

Worksheetクラスを継承したクラスを作る(4)

Worksheetクラスを継承したクラスを作る(4) すでに「継承」というのは詐欺同然の題名である。 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com 懲りずに続ける。 Cellsプロパティの実装 実は、数々の挫折にもめげ…

Worksheetクラスを継承したクラスを作る(3)

Worksheetクラスを継承したクラスを作る(3) akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com つづき。 実は、頓挫した理由はまだまだある。 Worksheet型変数(引数)にそのまま突っ込めない問題 考えてみたら当り前のことで、今回のPoweredSheet…

Worksheetクラスを継承したクラスを作る(2)

Worksheetクラスを継承したクラスを作る(2) 久しぶりに akashi-keirin.hatenablog.com の続き。決して忘れていたわけではありませぬ。 いきなり頓挫 実は、 いきなり頓挫 していたのである。 これでおわかりだろうか。 なんと、基本中の基本メソッドSelectが…

VBAでwavを鳴らしたら珍現象が起きた話

VBAでwavを鳴らしたらち~んw珍現象が起きた 解決方法を知っている人がいたら、教えろ教えてください。 KitchenTimerクラス 前に、 akashi-keirin.hatenablog.com こういうものを作ったら、職場で割とウケたので、「残り時間を表示するカウントダウンタイマ…

Worksheetクラスを継承したクラスを作る(1)

Worksheetクラスを継承したクラスを作る 超絶アホ企画。 少しオブジェクト指向をかじったVBAerなら、VBAのクラスモジュールに「継承」がないことは当然知っているだろう。 だから、あくまでも「擬似継承」である。 っていうか、ほとんど嘘である。 擬似継承…

TextFileクラスは今……

TextFileクラスは今…… akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com テキストファイルを扱うことがあって、久しぶりに引っ張り出してみたら、いろいろと不具合が見えてきたので、修正した。 TextFileクラスの現在の姿 かつてのTextFileクラス…

引数二つのProperty

引数二つのProperty 前回 akashi-keirin.hatenablog.com 作成したCaptionBoxクラス。 テキストボックスの塗りつぶし色と透過性という基本的なセッティングをするのに、たとえば With captBox.Fill .ForeColor.RGB = vbBlack .Transparency = 0.4 End With と…

PowerPointのスライドにキャプションを置く

PowerPointのスライドにキャプションを置くクラス PowerPoint初心者です。仕事でもほとんど使う機会がなかったので、そこらへんの素人以下です。 スライドショー的なPresentation そんなPowerPointど素人の私が、画像中心のPresentationを作ることになった。…

TextFileクラスの改良

TextFileクラスの改良 「改良」なのかどうかはわからんが。 ちなみに、元祖TextFileクラスについては、 akashi-keirin.hatenablog.com コチラをどうぞ。 改良後のTextFileクラス リスト1 クラスモジュール 'オブジェクト名はTextFile' Option Explicit 'Con…

テキストファイルの内容を保持するクラス

テキストファイルの内容を保持するクラス 処理に必要な値の中で、〈ほぼ静的なんだけどちょっと動的な値〉、つまり、滅多に変更することはないのだけれど、たまに変更が生ずるような値があると、実にめんどくさい。 これがExcelの場合だと、設定値書き込み用…

Personsクラスの改良

Personsクラスの改良 前回 akashi-keirin.hatenablog.com のPersonsクラスをちょこっとだけ改良する。 PersonsクラスのextractNamesメソッドは、その名のとおりPersonインスタンスのNameプロパティの値だけを指定したセルを開始位置として転記するものだった…

PersonクラスとPersonsクラス

PersonクラスとPersonsクラス TwitterのTL上で見かけたので、中途半端に乗っかってみる。 準備 Excelのブックに二つのワークシートを準備して、片や「MasterData」(オブジェクト名は「Sh01Master」)、こなた「Extracted」(オブジェクト名は「Sh02Extracte…

PublicNotCreatableの意味

PublicNotCreatableの意味 クラスモジュール使いであっても、あっちこっちで使い回すようなクラスモジュールを作ったりしなければ、存在にすら気づかないのが、クラスモジュールのInstancingプロパティではなかろうか。 Instancingプロパティに、「Private」…

メール作成クラス群は今……

メール作成クラス群は今…… とりあえず、一段落したので、現状をご報告。 結果的に、 IMailCreatableインターフェース IMailSendableインターフェース LotusNotesAppクラス ThunderbirdAppクラス OutlookAppクラス Recipientクラス Senderクラス ErrorObject…

Rahmenクラスの修正

Rahmenクラスの修正 前回 akashi-keirin.hatenablog.com のRahmenクラスを修正した。 生まれ変わったRahmenクラス クラスモジュール Rahmen Option Explicit '///Attribute VB_PredeclaredId = True///' Public Enum NoodleSolidity nsYugeTooshi nsKonaOtos…

クラス変数っぽいものを実現してみる

クラス変数っぽいものを実現してみる Attribute VB_PredeclaredIdをTrueにしたクラスモジュールでちょっと実験をしてみた。 実験用クラス 実験用に、Rahmenクラスを作成。 infoment.hatenablog.com こちらの記事にインスパイヤされたでござる。 クラスモジュ…

Errオブジェクトをラップしたクラス

Errオブジェクトをラップしたクラス akashi-keirin.hatenablog.com このとき、ErrObjectクラスはインスタンス化できないことを示した。 よく「Errオブジェクト」という表現も見かけるが、 Set hoge = New Err という書き方ができるわけでもない。 ただ、イミ…

自身のインスタンスを返すクラス

自分自身のインスタンスを返すクラス Attribute VB_PredeclaredId = False のとき クラスモジュールをデフォルトで使うときは、 Attribute VB_PredeclaredId = False である。 このとき、クラスのメソッドやプロパティは、インスタンス化した後でないと利用…

Outlookのメールを作成するクラスを作った

Outlookのメールを作成するクラスを作った 一気にOutlook版も行っちゃうよ! 今回も、 akashi-keirin.hatenablog.com このときのRecipientクラス、Senderクラスと併用するのが前提。 ソースコード クラスモジュール OutlookApp Option Explicit Implements I…

Thunderbirdのメールを作成するクラスを作った

Thunderbirdメール作成用のクラスを作成した 今度はThunderbird用。 前回 akashi-keirin.hatenablog.com のRecipientクラス、Senderクラスは、今回も使用する。 ソースコード クラスモジュール ThunderbirdApp Option Explicit Implements IMailCreatable Pr…

Law型? Any型?

「Law型」、「Any」型の意味がわからない ※私が所有しているのは、「Second Edition」じゃない方です。 『VBA Developer's Handbook』に載っていた、Clipboardクラスのコードの中で、WindowsAPI関数を宣言するところがある。 その中に、意味のわからない箇所…

シートモジュールへのインターフェース実装の代案

シートモジュールへのインターフェース実装の代案 ごく一部の(?)VBAerの間では、「シートモジュールにインターフェースをImplementsすると派手にバグる」というのは有名だと思う。「ごく一部で有名」であるということを「有名」と称するのかどうかはとも…

ThisWorkbookモジュールにインターフェースを実装することはできるのか

ThisWorkbookモジュールにインターフェースを実装することはできるのか 前回 akashi-keirin.hatenablog.com ブックのThisWorkbookモジュールにメソッドを搭載したら、まるでブックのメソッドであるかのように呼び出すことができることを示した。 では、ThisW…

乱数を作るクラスを改良した

乱数を作るクラス ランダムに並べ替える作業というのは滅多にないのだけれど、絶妙に忘れかけた頃に発生するので、 akashi-keirin.hatenablog.com このときにクラスまで作っていた。 んで、改めて見直してみたら、イマイチやなあ、と(笑)。 そんなわけで、…

自作WindowsAPIクラスにユーザが選択したフォルダのパスを返すFunctionを追加した

ユーザが選択したフォルダのパスを取得するFunction 相変わらず、WindowsAPIにハマっている。 今回も、名著『大村あつしのExcel VBA Win64/32 API プログラミング』を参考に、おなじみ、自作WindowsAPIクラスにメソッドを追加する。 akashi-keirin.hatenablo…

自作WindowsAPIクラスにウインドウのクラス名を返すFunctionを追加した

ウインドウのクラス名を返すFunction WinAPIの勉強中。 コチラの本に、アプリケーション別のクラス名が掲載されていたのだが、Internet Explorerのクラス名が載っていなかったので、アプリケーションのクラス名を返すFunctionを作ってみた。 コードを書いて…

自作WindowsAPIクラスを修正した

WindowsAPIクラスの修正 『大村あつしのExcel VBA Win64/32 API プログラミング』 二年半程前に購入したものの、「だめだ、今の私では歯が立たない……」と諦めていた コチラの本、『大村あつしのExcel VBA Win64/32 API プログラミング』。 「今ならそこそこ…