2020-01-01から1年間の記事一覧
ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、正規表現によるマッチング結果で、リストボックスの 表示内容を絞り込んでみた。 infoment.hatenablog.com今日も、前回の続きから。 前回までに、リスト項目の絞り込みについて、 キーワード…
ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、リストボックスの列数および列幅を自動調整することに挑戦した。 infoment.hatenablog.com今日も、前回の続きから。 前々回に、検索値を含む行だけでリストボックスを更新してみた。 こうな…
ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、検索値を含む行のみでリストボックスを更新してみた。 infoment.hatenablog.com今日も、前回の続きから。 リストボックスで何かと面倒なのが、列幅の調整だ。 複数列ある場合は下記のように…
ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、選択行の指定列の値を返すことに挑戦した。 infoment.hatenablog.com今日も、前回の続きから。 ListBoxについて個人的に、今まで何度か需要があったのがこちら。 指定キーワードで、リストボ…
ListBoxを操作するクラスモジュールを、私なりに作成中。 前回は、検索文字を含む行を全て選択してみた。 infoment.hatenablog.com今日も、前回の続きから。 今まで何度も面倒臭さを感じていたのが、こちらの場面。 リストボックス内の1つ以上の行を選択。 …
ListBoxを操作するクラスモジュールを、私なりに作成中。 昨日は、全選択・全解除・選択反転を行ってみた。 infoment.hatenablog.com今日も、昨日の続きから。 今日は、指定した文字を含む行を全て選択することに挑戦。 そのための作戦は、以下のとおり。 リ…
ListBoxを操作するクラスモジュールを、私なりに作成中。 昨日は、リストボックスのリストに配列をあてるまで、を行った。 infoment.hatenablog.com今日は、昨日の続きから。 クラスモジュール(ListBoxControl) 私だけかもしれないが、リストボックスに於…
ことりちゅんさんに倣い、ListBoxを操作するクラスモジュールを、 私なりに作ってみることにした。 例えば、こんなリストボックスがあったとする。 それで、選択された行(今回も書き易さの都合上、「行」「列」で表現する) に対して何某かの処理をするため…
以前、リストボックスの変わった使い方を見たことがある。 変わっていると言っても、私が変わっていると思っただけで、実は 一般的なのかもしれない。例えば、こんな感じだ。Userformの中央にあるのはリストボックスで、表示する列数は1だ。 しかしこのリス…
とある日付列の中から、開始日(一番古い日付)を求めたくなった。 これについて職場で話し合ったところ、三つの方法が提案された。 そこで、いつもの「なんちゃって個人情報」を題材に、その三つの案を 比較してみよう。 1.一つずつ比較 まず一行目の日付…
Excelの台帳が関係する自動化依頼を受けた際、最初に「表の掃除」を行うことが多い。中でも(知らないと)地味に厄介なのが、「セル内改行の除去」だ。 言わずと知れた「セル内改行」は、セル編集中にAltキーを押しながらEnterキーを押すことで実現可能だ。…
中学数学の図形問題説明のため、Excelで線を引き動かしてみた。 infoment.hatenablog.com今日は、これらを纏めてみる。 前回は、この5つの角の総和を求める方法を三通り紹介した。 しかし勿論、他にも方法があると思う。例えば、こんな感じだ。 黄と緑は0°…
先日、長男(中学三年生)の数学で、このような出題があった。 「↓ 〇印5か所の角の総和は何度でしょう?」 普通に解くならば、以下を用いれば良い。 三角形の外角は、それと隣り合わない2つの内角の和に等しい 三角形の内角の和は、180°である 例えば5つ…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、角数を指定するだけで正多角形を作成する関数を作成してみた。 infoment.hatenablog.com今回は、複数の線をいっぺんに動かしてみよう。 複数の線をいっぺんに動かすためには、指定…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、既存の線の始点と終点座標を得る関数を作成してみた。 infoment.hatenablog.com色々と試す中で、どうせなら正多角形を描いてみたくなった。 今回の作戦はこうだ。 円に内接する正…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は、一気に作ったサブプロシージャを、幾つかに分解してみた。 infoment.hatenablog.com今日は、既存の線の始点と終点を求めてみる。 線の位置と形状を知るためには、以下4つのプロパ…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は移動前と移動後の線を決めて、そこに至る経過を連続的に描画してみた。 infoment.hatenablog.com今日は、これを関数にしてみよう。 今回の作戦は、こうだ。 少々細切れになるが、線…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は線を引いて、それを滑らかに動かそうとして派手に失敗した。 infoment.hatenablog.com今日は、その解決に取り組んでみよう。 前回の失敗は、考えてみれば当然のことで。始点から幅と…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 前回は線を引いて、それを別の位置に動かすまでを行った。 infoment.hatenablog.com今日は、もっと滑らかに動かしてみよう。 今回は、このように考えた。 一気に移動させるのではなく、任…
ある理由から唐突に、Excelで線を引いて、それを動かしたくなった。 ちゃんとゴールできるか分からないが、挑戦してみよう。 手始めにオートシェイプの線を引いて、それをマクロの記録で見てみた。 なるほど、こんな感じか。 現在編集可能なシートに、図形と…
昨日は、Transpose関数を作ってみた。 infoment.hatenablog.comついでに、Index関数も作ってみた。 Transpose関数と同様のテストを行い、Index関数で配列をスライスする際の限界に挑戦してみた。 Sub Test() Dim arr(1, 1) As Variant Dim i As Long Dim tem…
先日、Transpose関数の限界を知った。 infoment.hatenablog.com仕方ない、自分で作るか。 今回はこちらに倣って、全てではないが、多くを日本語で書いてみた。 www.limecode.jp Function UDF_Transpose(ByVal 元配列 As Variant) As Variant ' 「元配列」が…
先日、このようなことをやってみた。 infoment.hatenablog.comついでなので、以下にも挑戦してみた。 ・同じ数字を4つ使って、1~10を作ってみる。例えば、1を4つで10は出来ない。そのような場合は、「解なし」とした。 結果がコチラ。 1111~9999のうち、…
面白いテーマがあったので、挑戦してみた。 4つの数字で、四則演算を用い10を作る ナンバープレートの数字で、誰でも一度は遊んだことある? 作戦としては、こうだ。 任意の4つの数字を選ぶ。 4つの数字の全ての組合せ(24通り)を得る。 24通りの組合せ…
ある商品群の在庫リストを作成する際、 「全データでピボットテーブルを作成すると、データが重くなる」 というお話が。そこで、今まで作成したクラスモジュールを使用して、 手軽に作成できないか考えてみた。 使用するデータは、いつもの「なんちゃって個…
今日も、私の失敗談を一つ紹介。 このブログで何度か紹介している、こちらのクラスモジュール。 infoment.hatenablog.comこの中には、二つの配列を比較してその結果を配列として返す関数がある。 例えば、こちら二つの表を比較したい場合。 Sub Test() Dim a…
今日は結局、お茶を濁して終わらせたお話。 こちらのブログでも紹介した、ユーザー定義関数「FindAll」。 少し前に、これが誤動作することが分かった。もともと、指定したキーワードがシート状に複数ある場合、そのキーワードを含むセル全てをRangeで返す仕…
ドラえもんの道具を貰えるとしたら、を真剣に考えてみた。 欲しい道具は何? もしドラえもんの秘密道具を一つ手に入れられるとしたら?熱い毎日が続くので、現実逃避してみた。私が欲しいのはずばり、これだ。 ハツメイカーハツメイカーは、「ハツメイカーで…
配列の行または列の切り出しについて、知識があいまいなまま使っていた。 確認してみよう。 Excel VBAにおいて二次元配列の一次元目を行、二次元目を列に準えるとき、 配列のr行c列目の値は以下の式で取得できる。 WorksheetFunction.Index(配列, 行番号r…
配列の行列入れ替えについて、知識が曖昧なまま使っていた。 確認してみよう。 ワークシートでは、コピーしたものの行と列を入れ替えて貼り付けが出来る。これをマクロの記録で見てみると、こうだ。 Sub Macro1() Selection.Copy Range("D2").Select Selecti…