VBA

再びトーナメント表作成 ➈-6 特定名簿からの作成

特定名簿からのトーナメント作成ツールを、少しずつ紹介中。 本日も、昨日の続きから。 今日は、三つに分けたサブプロシージャの最後。 Dim Sh As Worksheet Set Sh = ActiveSheet ' トーナメント作成用シートを変数にセットしてリネーム。 Sh.Name = SheetN…

再びトーナメント表作成 ➈-5 特定名簿からの作成

特定名簿からのトーナメント作成ツールを、少しずつ紹介中。 本日も、昨日の続きから。 昨日は「前半と後半の二回に分ける」としたが、それでも長かった。 ということで、今日は中盤のご紹介。同一サブプロシージャの途中から始まるため分り難くなっているが…

再びトーナメント表作成 ➈-4 特定名簿からの作成

特定名簿からのトーナメント作成ツールを、少しずつ紹介中。 本日も、先日の続きから。 本日は、トーナメントの作成部分。長いので、前半と後半で日を分けて紹介。 Sub 対戦表作成(Optional match_type As MatchType = en形) Call 名簿データ取得 ' 形および…

再びトーナメント表作成 ➈-3 特定名簿からの作成

特定名簿からのトーナメント作成ツールを、少しずつ紹介中。 本日も、昨日の続きから。 昨日と同様の標準モジュールに、 以下を追加する。 ' トーナメントの対戦順に並び替えられた配列に、その他の基本情報を付加して新たな配列を返す。 ' source_array:ト…

再びトーナメント表作成 ➈-2 特定名簿からの作成

長らく温めてきたトーナメント作成ツールだが、一部からのリクエスト仕様に対し検討を重ね、汎用化を断念した。この辺りは、私の能力不足に尽きる。ということで、特定名簿からの作成に特化したものを、少しずつ紹介していく。 まずは標準モジュールの、モジ…

再びトーナメント表作成 ➈-1 特定名簿からの作成

前回は、トーナメント作成クラスモジュールを一旦完成させるところまでを紹介した。 infoment.hatenablog.com ところがその後、トーナメント作成時の様々な制約が明らかとなって、結果これを一般化するのは至極煩雑であると感じた。そこで路線を変更して、特…

再びトーナメント表作成 ⑧ 第一段階完成

先日から、トーナメント表作成の仕組みを焼き直ししている。 infoment.hatenablog.com 今回も、前回の続きから。 前回の結果を踏まえ、最終的にこの形に落ち着いた。 Option Explicit Public PlayerRange As Range Public PlayerDict As Object Public Inver…

再びトーナメント表作成 ⑦ 式の一般化

前回からかなり時間が空いてしまったが、トーナメント表作成の仕組みを焼き直ししている。 infoment.hatenablog.com今回は、ずっと以前に作成したクラスモジュールの一般化について。 なぜ前回から時間が空いてしまったか。理由は幾つかあるが、その一つとし…

再びトーナメント表作成 ⑥ クラスモジュール作成

先日から、トーナメント表作成の仕組みを焼き直ししている。 infoment.hatenablog.com 今回は、これを一旦クラスモジュールに作り替えてみた。 クラスモジュールにした理由は至って単純で、複数回登場する値を使いまわししたかったら。しかし未熟の致すとこ…

再びトーナメント表作成 ⑤ 人を配置してみる

昨日は、トーナメント表作成時に全大会の上位入賞者を良い感じに 分散する関数における「考慮漏れ」の改修について紹介した。 infoment.hatenablog.com 今日は、実際に人の名前をトーナメント表にセットしてみよう。 今日までに作成した仕組みは、以下のとお…

再びトーナメント表作成 ④ 前大会の入賞者を良い感じに分散したい、を修正

先日から、トーナメント表の作成に取り組んでいる。数回前は、 前大会の入賞者を良い感じに分散させて、例えば前回の1位と2位が 一回戦で対戦しないよう工夫してみた。 infoment.hatenablog.com この中で重大な考慮漏れがあったため、今回はそれを修正する。…

再びトーナメント表作成 ③ 順番をランダムに並べ替えたい-2

昨日は、トーナメントに於いて対戦カードをランダムにするために、 配列の順番をランダムに並べ替えることに挑戦した。 infoment.hatenablog.com 書き始めた時刻が遅かったこともあり、残念ながらタイムアウトとなった。 今日は、昨日の続きから。 理屈の部…

再びトーナメント表作成 ③ 順番をランダムに並べ替えたい-1

昨日はトーナメント表作成において、なるべく全大会の入賞者が初戦で ぶつからないよう、良い感じに分散させることに挑戦した。 infoment.hatenablog.com しかしそうは言っても、完全ランダムで配置したいこともあるだろう。 ということで今日は、配列をラン…

再びトーナメント表作成 ② 前大会の入賞者を良い感じに分散したい

昨日は、選手の人数からトーナメント表のサイズを求めるために、 常用対数を使ってみた。 infoment.hatenablog.com 今日は、前大会の入賞者が一回戦でぶつからないよう、良い感じに分散 させることに挑戦する。 以前トーナメント表作成マクロに挑戦した際は…

再びトーナメント表作成 ① 常用対数が使えることに気づいた

前回まで、賞状作成用のマクロについて紹介してきた。 infoment.hatenablog.com 実は先日の大会の後、「トーナメント作成ツール」についても相談を受けていた。 そういえば随分と前になるが、作ったことがあったっけ。今回は、その焼き直しに挑戦するお話。 …

賞状作成用マクロのクラス化(最終回)

先日まで、順位毎の賞状印刷用データを作成することに挑戦したきた。 infoment.hatenablog.com 今日も、先日の続きから。 実は大会当日の朝に突貫で作成したマクロは、もっと作りが粗かった。 しかしそれでも、何とかその日の大会運営を円滑に行うことができ…

「敢闘賞」はレイアウトが変わる件について

先日まで、順位毎の賞状印刷用データを作成することに挑戦してきた。 infoment.hatenablog.com 今日も、先日の続きから。 試合の前日、担当の先生からの説明によれば、賞状のひな形は二つある とのことだった。 優勝(一位)~三位まで用 敢闘賞(四位)用 …

賞状データ作成

昨日まで「賞状印刷用データ」に必要な項目を、印刷にふさわしい 形に整えることに挑戦してきた。 infoment.hatenablog.com infoment.hatenablog.com infoment.hatenablog.com infoment.hatenablog.com 今日も、昨日の続きから。 おさらいすると、賞状に反映…

無色無味無臭の毒を除去:VBAとワークシートのTrim関数の違い

先日から、「賞状印刷用データ作成マクロ」に挑戦している。 前回は、一位から四位までの選手の氏名を取得する関数を作成してみた。 infoment.hatenablog.com 今日も、前回の続きから。 ja.wikipedia.org ※毒:Poisonとポアソン:Poissonを絡めた駄洒落。今…

選んだ順で一位から四位の名前を取得したい

前回は、「小学3年生女子組手」などを「小学生三年女子 組手の部」のように 一定のルールで成形することに挑戦した。 infoment.hatenablog.com 今日は、前回の続きから。 前回も少し述べたように、一連の作業は賞状印刷用データを作成するためのもの。 賞状…

「小学3年男子形」を「小学生三年男子 形の部」にしたい

先日、「小学1年生」を「小学一年生」に変換すべく、文字列に 含まれるアラビア数字を漢数字に置き換える関数を作ってみた。 infoment.hatenablog.comところがよくよく確認してみると、要件はもう少し複雑だった。 修正してみよう。【要 件】 小学生、中学…

小学3年生を、小学三年生にしたい

Excelで、「小学1年生」から「中学3年生」までのアラビア数字を、 漢数字に置き換えることになった。しかも、100回以上。ということで急遽、関数を作ってみた。作戦は、こんな感じだ。 正規表現で、数字を抽出する。 抽出した数字を、漢数字に変換する。 …

VBA100本ノック 41本目:暗算練習アプリ

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 今回は、プログラムを考えるよりむしろ、「暗算できる範囲で」という ところに時間が掛かったか…

ある文字列を含むセルを行単位でグループ化して非表示にしたい

本日職場で、こんなリクエストを見た。 ※公開可能なように、内容は一般化しています。みんな大好き「なんちゃって個人情報」に於いて、 性別が「男」の行を全て非表示にしたい。 単純に非表示にすると存在に気づけないので、グループにしたうえで畳んでおき…

VBA100本ノック 40本目:複数ブックの統合

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 最近ではPower Querryという便利なものがあるので、敢えてマクロで行う 必要は無いかもしれない…

VBA100本ノック 39本目:数値リストの統合(マージ)

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 重複除去は個人的に、日常の業務でも低~中頻度で発生する事案。 私は面倒くさがりなので、たい…

VBA100本ノック 38本目:1シートを複数シートに振り分け

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 今回は、Indexで配列を一行ずつ切り取って振り分ける方式を採用。 Sub VBA_100Knock_38() ' 祝日…

VBA100本ノック 37本目:グラフの色設定

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 今回は、 グラフが一つしかない ⇒ 一つ目のグラフで決め打ち 最大値と最小値を編集 ⇒ 最大値、最…

VBA100本ノック 36本目:列の並べ替え

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 ( )内の数字で並べ替えるわけだが、( )以外の表記に一貫性がない。 従って、単純な並び替え…

VBA100本ノック 35本目:条件付き書式

こちらで公開されている、100本ノックに挑戦。 www.excel-ubara.com 素晴らしい教材を公開いただき、ありがとうございます。上記リンク先から、問題文を転載。 行や列のコピー等と共に条件付き書式が増殖するのは、もはや宿命と言って 良いほど、定期的に遭…