2020-01-01から1年間の記事一覧

ListBoxを操作するクラスモジュール ⑧ レーベンシュタイン距離(1)

ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、正規表現によるマッチング結果で、リストボックスの 表示内容を絞り込んでみた。 infoment.hatenablog.com今日も、前回の続きから。 前回までに、リスト項目の絞り込みについて、 キーワード…

ListBoxを操作するクラスモジュール ⑦ 正規表現によるマッチング

ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、リストボックスの列数および列幅を自動調整することに挑戦した。 infoment.hatenablog.com今日も、前回の続きから。 前々回に、検索値を含む行だけでリストボックスを更新してみた。 こうな…

ListBoxを操作するクラスモジュール ⑥ 列幅を自動調整

ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、検索値を含む行のみでリストボックスを更新してみた。 infoment.hatenablog.com今日も、前回の続きから。 リストボックスで何かと面倒なのが、列幅の調整だ。 複数列ある場合は下記のように…

ListBoxを操作するクラスモジュール ⑤ 検索値を含む行のみでリストボックスを更新

ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、選択行の指定列の値を返すことに挑戦した。 infoment.hatenablog.com今日も、前回の続きから。 ListBoxについて個人的に、今まで何度か需要があったのがこちら。 指定キーワードで、リストボ…

ListBoxを操作するクラスモジュール ④ 選択行の指定列の値を返す

ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、検索文字を含む行を全て選択してみた。 infoment.hatenablog.com今日も、前回の続きから。 今まで何度も面倒臭さを感じていたのが、こちらの場面。 リストボックス内の1つ以上の行を選択。 …

ListBoxを操作するクラスモジュール ③ 検索文字を含む行を全て選択

ListBoxを操作するクラスモジュールを、私なりに作成中。 昨日は、全選択・全解除・選択反転を行ってみた。 infoment.hatenablog.com今日も、昨日の続きから。 今日は、指定した文字を含む行を全て選択することに挑戦。 そのための作戦は、以下のとおり。 リ…

ListBoxを操作するクラスモジュール ② 全選択

ListBoxを操作するクラスモジュールを、私なりに作成中。 昨日は、リストボックスのリストに配列をあてるまで、を行った。 infoment.hatenablog.com今日は、昨日の続きから。 クラスモジュール(ListBoxControl) 私だけかもしれないが、リストボックスに於…

ListBoxを操作するクラスモジュール ① 配列でリスト作成

ことりちゅんさんに倣い、ListBoxを操作するクラスモジュールを、 私なりに作ってみることにした。 例えば、こんなリストボックスがあったとする。 それで、選択された行(今回も書き易さの都合上、「行」「列」で表現する) に対して何某かの処理をするため…

リストボックスのこんな使い方

以前、リストボックスの変わった使い方を見たことがある。 変わっていると言っても、私が変わっていると思っただけで、実は 一般的なのかもしれない。例えば、こんな感じだ。Userformの中央にあるのはリストボックスで、表示する列数は1だ。 しかしこのリス…

開始日(一番古い日付)を求める

とある日付列の中から、開始日(一番古い日付)を求めたくなった。 これについて職場で話し合ったところ、三つの方法が提案された。 そこで、いつもの「なんちゃって個人情報」を題材に、その三つの案を 比較してみよう。 1.一つずつ比較 まず一行目の日付…

セル内改行の除去

Excelの台帳が関係する自動化依頼を受けた際、最初に「表の掃除」を行うことが多い。中でも(知らないと)地味に厄介なのが、「セル内改行の除去」だ。 言わずと知れた「セル内改行」は、セル編集中にAltキーを押しながらEnterキーを押すことで実現可能だ。…

線を引いて動かす ⑧ まとめ

中学数学の図形問題説明のため、Excelで線を引き動かしてみた。 infoment.hatenablog.com今日は、これらを纏めてみる。 前回は、この5つの角の総和を求める方法を三通り紹介した。 しかし勿論、他にも方法があると思う。例えば、こんな感じだ。 黄と緑は0°…

三角形の外角は、それと隣り合わない2つの内角の和に等しい

先日、長男(中学三年生)の数学で、このような出題があった。 「↓ 〇印5か所の角の総和は何度でしょう?」 普通に解くならば、以下を用いれば良い。 三角形の外角は、それと隣り合わない2つの内角の和に等しい 三角形の内角の和は、180°である 例えば5つ…

線を引いて動かす ⑦ 複数の線を同時に動かす

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、角数を指定するだけで正多角形を作成する関数を作成してみた。 infoment.hatenablog.com今回は、複数の線をいっぺんに動かしてみよう。 複数の線をいっぺんに動かすためには、指定…

線を引いて動かす ⑥ 正多角形を描いてみる

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、既存の線の始点と終点座標を得る関数を作成してみた。 infoment.hatenablog.com色々と試す中で、どうせなら正多角形を描いてみたくなった。 今回の作戦はこうだ。 円に内接する正…

線を引いて動かす ⑤ なんちゃらFlip

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、一気に作ったサブプロシージャを、幾つかに分解してみた。 infoment.hatenablog.com今日は、既存の線の始点と終点を求めてみる。 線の位置と形状を知るためには、以下4つのプロパ…

線を引いて動かす ④ 始点と終点を引数とした関数化

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は移動前と移動後の線を決めて、そこに至る経過を連続的に描画してみた。 infoment.hatenablog.com今日は、これを関数にしてみよう。 今回の作戦は、こうだ。 少々細切れになるが、線…

線を引いて動かす ③ 動かすのを諦めて書き直す

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は線を引いて、それを滑らかに動かそうとして派手に失敗した。 infoment.hatenablog.com今日は、その解決に取り組んでみよう。 前回の失敗は、考えてみれば当然のことで。始点から幅と…

線を引いて動かす ② 滑らかに動かそうとして失敗

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は線を引いて、それを別の位置に動かすまでを行った。 infoment.hatenablog.com今日は、もっと滑らかに動かしてみよう。 今回は、このように考えた。 一気に移動させるのではなく、任…

線を引いて動かす ① とりあえず線を引く

ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 ちゃんとゴールできるか分からないが、挑戦してみよう。 手始めにオートシェイプの線を引いて、それをマクロの記録で見てみた。 なるほど、こんな感じか。 現在編集可能なシートに、図形と…

Index関数も作ることにした

昨日は、Transpose関数を作ってみた。 infoment.hatenablog.comついでに、Index関数も作ってみた。 Transpose関数と同様のテストを行い、Index関数で配列をスライスする際の限界に挑戦してみた。 Sub Test() Dim arr(1, 1) As Variant Dim i As Long Dim tem…

Transpose関数を作ることにした

先日、Transpose関数の限界を知った。 infoment.hatenablog.com仕方ない、自分で作るか。 今回はこちらに倣って、全てではないが、多くを日本語で書いてみた。 www.limecode.jp Function UDF_Transpose(ByVal 元配列 As Variant) As Variant ' 「元配列」が…

4つの同じ数字で1~10を作ってみる

先日、このようなことをやってみた。 infoment.hatenablog.comついでなので、以下にも挑戦してみた。 ・同じ数字を4つ使って、1~10を作ってみる。例えば、1を4つで10は出来ない。そのような場合は、「解なし」とした。 結果がコチラ。 1111~9999のうち、…

4つの数字で10を作る(道半ば)

面白いテーマがあったので、挑戦してみた。 4つの数字で、四則演算を用い10を作る ナンバープレートの数字で、誰でも一度は遊んだことある? 作戦としては、こうだ。 任意の4つの数字を選ぶ。 4つの数字の全ての組合せ(24通り)を得る。 24通りの組合せ…

レコード数を絞ってから集計(今まで作成したクラスモジュールの使用例)

ある商品群の在庫リストを作成する際、 「全データでピボットテーブルを作成すると、データが重くなる」 というお話が。そこで、今まで作成したクラスモジュールを使用して、 手軽に作成できないか考えてみた。 使用するデータは、いつもの「なんちゃって個…

配列のある操作に関する限界(失敗談)

今日も、私の失敗談を一つ紹介。 このブログで何度か紹介している、こちらのクラスモジュール。 infoment.hatenablog.comこの中には、二つの配列を比較してその結果を配列として返す関数がある。 例えば、こちら二つの表を比較したい場合。 Sub Test() Dim a…

結局、お茶を濁して終わらせた話(失敗談)

今日は結局、お茶を濁して終わらせたお話。 こちらのブログでも紹介した、ユーザー定義関数「FindAll」。 少し前に、これが誤動作することが分かった。もともと、指定したキーワードがシート状に複数ある場合、そのキーワードを含むセル全てをRangeで返す仕…

ドラえもんの道具を一つ貰えるとしたら(真剣に考えてみた)

ドラえもんの道具を貰えるとしたら、を真剣に考えてみた。 欲しい道具は何? もしドラえもんの秘密道具を一つ手に入れられるとしたら?熱い毎日が続くので、現実逃避してみた。私が欲しいのはずばり、これだ。 ハツメイカーハツメイカーは、「ハツメイカーで…

配列の行または列を切り出し(Index関数)

配列の行または列の切り出しについて、知識があいまいなまま使っていた。 確認してみよう。 Excel VBAにおいて二次元配列の一次元目を行、二次元目を列に準えるとき、 配列のr行c列目の値は以下の式で取得できる。 WorksheetFunction.Index(配列, 行番号r…

配列の行列入れ替え(Transpose関数)

配列の行列入れ替えについて、知識が曖昧なまま使っていた。 確認してみよう。 ワークシートでは、コピーしたものの行と列を入れ替えて貼り付けが出来る。これをマクロの記録で見てみると、こうだ。 Sub Macro1() Selection.Copy Range("D2").Select Selecti…