クラスモジュール

ピボットテーブルの備忘録 ⑨ピボットテーブル用クラスなのに、テーブル作成のためだけに使ってみる

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日は、受け取った配列を一旦新規作成したシートに貼り付けてテーブル化し、そのテーブルからピボットテーブルを作成してみた。 infoment.hatenablog.com 今日は、本シリーズの最終…

ピボットテーブル作成用クラスモジュール

ピボットテーブル作成用に、クラスモジュールを作成してみた。 私的利用向けであるため、汎用性はさほど高くない。とりあえず備忘録として、こちらにまとめておく。 ◆ソースコード(クリックで展開)◆ Option Explicit Public Pvt As Excel.PivotTable Dim P…

ピボットテーブルの備忘録 ⑧受け取った配列を、一旦新規作成したシートに貼り付けてテーブル化し、そのテーブルからピボットテーブルを作成する

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日は、指定した範囲を一旦テーブル化し、そのテーブルからピボットテーブルを作成するサブプロシージャの中から、指定範囲をテーブル化する箇所だけを抜き出して関数にしてみた。 i…

ピボットテーブルの備忘録 ⑦テーブル作成部分だけを単独でメソッド化

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日は、指定した範囲を一旦テーブル化し、そのテーブルからピボットテーブルを作成してみた。 infoment.hatenablog.com今回は、昨日作成したもののうち、テーブル化する部分だけを切…

ピボットテーブルの備忘録 ⑥テーブルに加えて範囲の指定でもピボットテーブルを作成可とする

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 最初の頃、テーブルを引数にピボットテーブルを作成するマクロに挑戦した。 infoment.hatenablog.comしかし考えてみると、いつもテーブルが準備されているとは限らない。 そこで今回…

ピボットテーブルの備忘録 ⑤独自のテーブルスタイル設定

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 先日は、マクロによる集計フィールドの追加に挑戦した。 infoment.hatenablog.com今日は、ちょっと寄り道。指定した範囲をテーブル化するために、まずオリジナルのテーブルスタイルを…

ピボットテーブルの備忘録 ④ 集計フィールド

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 先日は、作成したピボットテーブルにフィルターを設定してみた。 infoment.hatenablog.com今日は、マクロによる集計フィールドの追加に挑戦する。 まず初めに断っておくと、集計フィ…

ピボットテーブルの備忘録 ③フィルター設定

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 先日は、普段使用する書式をクラスモジュール内で一まとめにメソッド化することで、実際使用する際のコードを圧縮してみた。 infoment.hatenablog.com今日は作成したピボットテーブル…

ピボットテーブルの備忘録 ②クラス化(7)お好みセット

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日は、データ範囲の表示形式変更に挑戦した。 infoment.hatenablog.com今日は、今までの内容を更に一まとめにすることで、普段のピボットテーブル作成マクロを更に圧縮することに挑…

ピボットテーブルの備忘録 ②クラス化(6)表示形式

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 先日は、集計方法の変更に挑戦してみた。 infoment.hatenablog.com今日は、表示形式の変更に挑戦する。 昨日は、年齢が「合計」で集計されていたため、集計方法を「平均」に切り替え…

ピボットテーブルの備忘録 ② クラス化(5)合計か平均か

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 先日は、作成したピボットテーブルの書式を整えることに挑戦した。 infoment.hatenablog.com今日は、集計方法の変更に挑戦する。 さて、先日からサンプルとして扱っている「なんちゃ…

ピボットテーブルの備忘録 ② クラス化(4)書式を整える

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日は、作成したピボットテーブルを「表形式」にして「小計を表示しない」にしてみた。 infoment.hatenablog.com 今日は、作成したピボットテーブルの書式を整えてみる。 昨日と今日…

ピボットテーブルの備忘録 ② クラス化(3)表形式で表示

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日はクラスモジュールで、ピボットテーブルの各フィールドをセットする ところまでを作成した。 infoment.hatenablog.com今日は、作成したピボットテーブルの表示形式を変えてみる…

ピボットテーブルの備忘録 ② クラス化(2)フィールド

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 昨日はクラスモジュールで、集計直前のピボットテーブルを作成した。 infoment.hatenablog.com 今日は、各フィールドをセットしてみる。 ↓ いつもの「なんちゃって個人情報」からデー…

ピボットテーブルの備忘録 ② クラス化(1)器を準備

先日から、マクロによるピボットテーブルの扱いを纏めている(備忘録)。 infoment.hatenablog.com毎回毎回、手間をかけて作っていたが、いい加減面倒になってきた。 そこでこれを機に、部品化してしまおうと思う。備忘録と言いながら、 今回は開発要素が強…

ダミーテーブル作成 ④ 完結編(クラスモジュール)

先日はダミーテーブルを作成する関数について、希望するところまで完成させた。 infoment.hatenablog.com今日は毎度の一つ覚え、クラスモジュール化してみよう。 先日のコードを見直したところ、一部に誤りがあり修正。これをクラスモジュール化したのがこち…

インスタンスを破棄するタイミング(失敗談)

大変な勘違いをしていた。 サブプロシージャ内で生成されたインスタンスは、 サブプロシージャ終了時に、自動的に破棄される。 従って最近個人的に流行りの下記も、 With New Class1 てっきり、サブプロシージャ終了時に破棄されるものと思い込んでいた。 し…

複数条件で絞り込む(配列)

昨日に引き続き、ArrayEditクラスの機能拡張に挑戦。 今日は、複数の条件で配列を絞り込んでみる。 今日も、なんちゃって個人情報のお世話になる。 今回は、5000人分の情報をダウンロード。この中から、以下を抽出する。 男性 既婚 愛知県在住 ドコモユ…

二次元配列で指定列の値のうち、指定値以上の行だけ残したい

二次元配列で指定列の値のうち、指定値以上の行だけ残したいケースが登場した。例えば、↓ このような値において、 ↓ このようにしたい。 そこで、先日来取り組んできたクラス「ArrayEdit」の機能拡張に挑戦した。 折角なので、以下の選択肢全てに対応させて…

End If で終わらない If

昨日は、With について試してみたところを紹介した。 infoment.hatenablog.comその後、thomさんに解説をいただくことが出来た。 (いつも、ありがとうございます)。この方式について、使い処を色々考えてみた。思いついたのが、↓ こちらで作成したクラスモ…

変数の省略

例えば、こんなサブプロシージャがあったとする。 Sub test_1() Dim myReg As RegExp Set myReg = New RegExp myReg.Pattern = "[\w]+" Debug.Print .test("aaa") Debug.Print .test("あああ") End Sub 変数を宣言し、初期化し、その後の処理を行う。よくあ…

トーナメント作成 ⑥ クラスモジュールへの移植

昨日はリストの上位にいる選手が、優先的にシード選手になるようにしてみた。 infoment.hatenablog.com今日は、本シリーズ最終回。一応完成(のつもりです)。 といっても、ほとんどは昨日の内にできている。今日はいつものごとく、作成したそれをクラスモジ…

ArrayEditのまとめ

作成したArrayEditの「途中形態」が、時系列で次々と増えてきた。そこで、現時点の最終形をこちらに載せることにした。今後は、ここだけ更新することにする。※結構なボリュームなので、畳んで置いておく。↓ ScriptingRuntimeの参照設定を要す。 ◆Seaquenceの…

指定した原紙シートをコピーして新たなシートを作成し、シート名を指定した名前に変更し、その中の指定アドレスに指定配列を丸ごと貼り付けてついでに列幅まで調整したうえでテーブル化し、最後にそのテーブルを戻り値とする関数

過去に作成して提供した、Excelツールの改修を依頼された。作ったのは、2年ほど前か。中身を見て、愕然とする。その作りの、何と酷いことよ。 その中で、結構な行数を費やしている箇所があった。 ある範囲のデータを、配列に格納する。 「原紙」シートをコ…

配列内の文字を複数条件で置換

文字を置換したい。シート上であれば、これで片が付く。 だが今回は配列内の文字に対し、複数条件で置換したい。挑戦してみた。 折角なので、先日来作成しているArrayEditClassの機能拡張で対応してみた。 作戦は、こうだ。 ParamArrayキーワードで、置換前…

新規シートを追加してから貼り付け の続き

先日、配列をシートに貼り付ける際、新規シートを追加してから貼り付けられるようにしてみた。 infoment.hatenablog.comこのマクロには問題があった。例えば配列を「新規シートのA1」に貼り付ける際、引数を渡した時点で「新規シートのA1」は存在しないため…

新規シートを追加してから貼り付け

昨日の記事で、次のような操作を行った。 シート追加 配列貼り付け infoment.hatenablog.com 日々、それなりに登場する操作だ。 唐突に、「毎回シートを追加する」のが面倒くさくなった。 そこで、配列をシートに貼り付ける関数に、新規にシートを作成するか…

指定列の項目毎に、別の指定列について最大値を求める

先日、次のような課題を目にした。 例えば、昨日のなんちゃって個人情報にて。各都道府県の、最年長者を抽出した表を作成したい。 挑戦してみた。 今回の作戦は、こうだ。 指定範囲を一行ずつ、都道府県をキーにして辞書に登録する。 同じ都道府県の場合は年…

二つの配列を比較する

昨日は、二次元配列で、最後尾に新たな一行または一列を追加してみた。 infoment.hatenablog.com今日は、表で何某かレコードに変更があった場合を想定し、二次元配列に格納して比較することに挑戦する。 今回も、北陸県を用いたサンプルで検討した。 表Aと…

二次元配列で、最後尾に新たな一行または一列を追加

昨日は、二次元配列での列編集に挑戦した。 infoment.hatenablog.com行に対して作りためた様々を、列に横展開。これでまた、一気に充実した。しかし今までのものは全て、既存データのやりくりでしかない。そこで今回は、新規データの追加に挑戦する。 今回挑…