中途半端に規則的な数列

中途半端に規則的な循環数列を簡単に実現する Excelで座席表なんかを作る場合を想定。 表示用シートに こんな枠を作っておいて、VLOOKUPなんかで こういったデータ用シートから値を引っ張ってくる。 各座席の左上のセルに番号を入力したら、必要なデータが残…

標準モジュールのPropertyとは

標準モジュールのPropertyとは 標準モジュールにもPropertyを生やすことができる。 では、標準モジュールのPropertyとFunctionは何が違うのだろうか。 Fucntionならば、同名のPublicなものが他のモジュールにない限りはメソッド名だけで呼び出せる。Property…

TextFileクラスの改良

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

差し込み印刷のデータソース接続前にデータソースの存否確認をする(Word)

差し込み印刷のデータソース接続前にデータソースの存否確認をする ……などと、大それた標題をブチ上げたが、実質的な 敗北宣言 だと思っていただきたい。 いわば、爆負宣言である。 差し込み印刷のデータソースはExcel限定 実は、差し込み印刷の差し込みデー…

FileSystemObjectを用いてテキストファイルを読み込む

FileSystemObjectを用いてテキストファイルを読み込む 〈FileSystemObject使い宣言〉をしていた(いつ?!)にもかかわらず、 akashi-keirin.hatenablog.com このときは、テキストファイルの読み込みにFileSystemObjectを利用していなかった。 深く反省して…

『BLOG「芦田の毎日」』(シラバスとは何か ― コマシラバスはなぜ必要なのか)の本文を読みやすく加工するマクロ(Word)

『BLOG「芦田の毎日」』(シラバスとは何か ― コマシラバスはなぜ必要なのか)の本文を読みやすく加工するマクロ(Word) 我ながら超ニッチなマクロであるw 過去記事 このときにも紹介したが、標題の記事は、 ※本文中、(●)などの表記が見られる場合は、その…

ドラッグで文字列を選択したかのような操作(Word)

文字列をドラッグして選択する操作(Word) akashi-keirin.hatenablog.com このとき、 選択範囲を文字数単位で拡張するメソッドとか、ないものか。(←調べろ。) などと、テキトーなことをぶっこいていたが、 あった。 やはり、ものごとというものは、ちゃんと…

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

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

指定した文字列に傍点を施すWordマクロ

指定した文字列に傍点を施すWordマクロ 芦田宏直氏が、ブログ『芦田の毎日』上で、「シラバスとは何か ― コマシラバスはなぜ必要なのか」という超大作の論考を発表しておられる。 氏のツイート(@jai_an)によると、2019/07/06時点で11万字overとのこと。 読…

Personsクラスの改良

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

PersonクラスとPersonsクラス

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

2次元配列の値をRangeオブジェクトに突っ込むときの配列はVariantでなくても良い(Excel)

2次元配列の値をRangeオブジェクトに突っ込むときの配列はVariantでなくても良い 初歩的過ぎますか? 2次元配列の値を一気にRangeオブジェクトに書き込む処理は、Variant型の変数を使う例が多かったので、全然気づいていませんでした。 実験 シートモジュ…

Rangeオブジェクトが矩形かどうかを判定する(Excel)

Rangeオブジェクトが矩形かどうかを判定する Rangeオブジェクトに入っているセル範囲は、必ずしも連続した矩形領域であるとは限らない。 [Ctrl]を押しながら選択すれば、飛び地状態で選択できるし、飛び地状態で一つのRange型変数にぶちこむことだってできる…

シートオブジェクトにPropertyを生やそう!

シートモジュールにPropertyを生やそう! シートモジュールにPropertyを設置すると便利、というだけの話。 準備 たとえば、ワークシート(オブジェクト名は「Sheet1」)上に、次のようなリストがあるとする。 とりあえず超シンプルな表にした。 Propertyを設…

Switch関数はRangeオブジェクトを返すのか

Switch関数はRangeオブジェクトを返すか 前回 akashi-keirin.hatenablog.com 初めてその存在を知ったSwitch関数。 こいつは、たとえばRangeオブジェクトを返したりすることはできるのだろうか。 やってみた。 準備 Sheet1オブジェクトに次のようなPropertyを…

Switch関数というものがある

Switch関数というものがある 知ってました? 私は全然知らなかった。 何気なく『Programming Excel with VBA and .NET』という本を読んでいたら、59ページに、 Sub GetResponse() ' Declare variable as an enumerated value' Dim res As VbMsgBoxResult ' G…

Staticプロシージャというものがある

Staticプロシージャというものがある 知ってました? 私は全然知らなかった。 何気なく『Programming Excel with VBA and .NET』という本を読んでいたら、58ページに、 Private Static Sub Proc3() ' In Static Procedures, all local variables are Static.…

PublicNotCreatableの意味

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

アクセス修飾子「Friend」とは?

アクセス修飾子「Friend」とは? 勘違いから、マヌケな記事を書いてしまった。 訂正記事を書くのがめんどくさいので(←コラ!)、バッサリ削除して書き直す。 アクセス修飾子「Friend」は、入門書の類にはまず出てこない。 名前が「Friend」なのに、友達がい…

テスト用メソッドもPrivete指定にする

テスト用メソッドもPrivete指定にする Privete指定でもVBE上で実行できる これは、考えてみたら当り前なんだけれど、全然気づいていなかった。 イミディエイト・ウインドウ上での実行 次のようなメソッド群を用意する。 リスト1 標準モジュール Private Sub…

コマンドボタンから呼び出すメソッドはPrivete指定で良い

Priveteメソッドでもコマンドボタンから呼び出すことができる 常識ですか? 私は存じ上げませんでしたので、今まで何でもかんでもPublic指定にしていた。 そのせいで、「マクロの登録」ウインドウなんかを開くと、 こんなひどい有様にw Privete指定のメソッ…

素因数のセットを取得するFunciton

素因数のセットを取得するFunction 前二回 akashi-keirin.hatenablog.com akashi-keirin.hatenablog.com の集大成として、素因数のセットを取得するメソッドを作ってみた。 コード モジュールごとコードを載っけておく。 リスト1 標準モジュール Option Exp…

次の素数を取得するFucntion

次の素数を取得するFunction 数字を受け取って、その数字よりも大きい最小の素数を返すメソッドを作った。 コード リスト1 標準モジュール Private Function getNextPrimeNumber( _ ByVal targetNumber As Long) As Long Dim ret As Long ret = targetNumbe…

素数かどうかを判定するFunction(2)

素数かどうかを判定するFunction(2) 前回 akashi-keirin.hatenablog.com をちょこっと修正。 割り算の試行は平方根近似値までで良い 高校生が実に明解に説明してくれていた。 www.higashi-h.tym.ed.jp 富山県立富山東高等学校の諸君、本当にありがとう!!!!!!…

素数かどうかを判定するFunction

素数かどうかを判定するFunction 久しぶりの投稿。 素数かどうかを判定するメソッドを自作してみた。 その前に前回の記事の恥ずかしい誤りを訂正せえよ、と思っていますが。 コード ごちゃごちゃなしで、書いたコードをぶちまける。 リスト1 標準モジュール…

オブジェクト名を指定してWorksheetオブジェクトを取得するFunction(Excel)

オブジェクト名を指定してWorksheetオブジェクトを取得するFunction(Excel) CodeNameプロパティというものがある akashi-keirin.hatenablog.com コチラの記事のコメント欄が炎上wしたことにより、CodeNameというプロパティの存在を知った。 CodeNameプロパ…

炎上wしたコメント欄への対応

炎上wしたコメント欄への対応 ※この画像はフランスジョークですw 大量のExcelブックと戦う業務があって、そのときに必要なシートの名前を勝手に変える人がちょこちょこいたせいで難儀したので、間に合わせでシート名が改変されたブックを検知するメソッド…

シート名の変更を検知する(Excel)

シート名の変更を検知する(Excel) 各所から集めた大量のExcelブックを処理するとき、配布した様式ブックに保護をかけ忘れると、それはもう、好き放題にシート名をいじくられるw マクロで処理しようにも、シート名とかシートの順序を変えられると、ちょっと…

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

メール作成クラス群は今…… とりあえず、一段落したので、現状をご報告。 結果的に、 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…