試してみた

阿弥陀編:最終回 ~クラスモジュールへの旅~

先日は、あみだくじを一斉にスタートさせることで、結果が出るまでの待ち時間を短縮してみた。 infoment.hatenablog.com本日は、阿弥陀編の最終回(と、「火の鳥」っぽい題名を付けてみた)。 といっても、行ったのは以下の二つ。 クラスモジュール化(ワン…

一斉にあみだくじ

前回は作成したあみだくじで、選択した任意の参加者を自動でゴールまで辿らせてみた。 infoment.hatenablog.com今回は、あみだくじの作成から結果の表示までを、自動で一気にやってみる。 あみだくじで、一人ずつゴールまで辿ると、全ての結果が出るには 一…

あみだくじでスタートからゴールまで辿らせてみる

昨日は、あみだくじの線を自動で作成することに挑戦した。 infoment.hatenablog.com今日は、これを自動で辿らせてみる。 正しい道を辿るために、今回は、スタート位置を2行2列に拡大してみた。 この拡大領域について、次のように判別する。 ①に底線がある …

あみだくじの「梯子の部分」を、マクロで作ってみる

さて、昨日までは、罫線描画のあれこれを話題にしてみた。 infoment.hatenablog.com infoment.hatenablog.com今日はこれらを踏まえ、また上記投稿の期間中に寄せられた知見を拝借して、あみだくじの「梯子の部分」を作ってみる。 ※元ネタはこちらです。 koro…

罫線の指定について ~ Borders.item(なんちゃら)という指定

昨日は半ばお遊びで、マクロの記録で作成したコードを一行にまで圧縮してみた。 infoment.hatenablog.com今日は、この続きを少しだけ。 昨日、罫線の種類と太さについて、少し触れてみた。しかし考えてみると、自分でもきちんと内訳を確認したことが無かった…

「マクロの記録」の結果の、要らないところを消してみる

ふと思い立って、「マクロの記録」の結果の、要らないところを消してみた。 まず記録したのがこちら。 真っ新なA1セルの外周に罫線を引く 記録された結果がこちら。四方に線を引くだけなのに、なんでこんなに長ったらしいんだ?と、きっと、誰もが一度は思っ…

セルが結合されている場合は、結合範囲で処理

先日は、指定セルの中に良い感じで線矢印を作成することに挑戦した。 infoment.hatenablog.comところで、この機能を用いて連続的に矢印を作成したところ、困ったことになった。線矢印の描画対象セル。 ご覧のとおり、B2とC2が結合されている。この状態で、↓ …

印鑑(ハンコ)を模したオートシェイプ

およそ一年ほど前、セルの真ん中に円を描画するマクロを紹介した。 infoment.hatenablog.com今回はその発展として、印鑑(※以降「ハンコ」)っぽいオートシェイプの作成に挑戦する。 個人的には残念なことに、世の中には未だ未だ 「印刷して、手書きしたうえ…

「強敵」と書いて「とも」と読む

先日職場での雑談から、こんな話題が登場した。 「検索って、平仮名でもできますよね」ナンデスカ、ソレハ?初耳だった。 果たして試してみると、確かにそのとおりだった。 例えば、「後日談」と入力して、「じつだん」で検索するとヒットする。 不思議だな…

配列に日付を格納してオーバーフローしたお話 の続き

昨日は、2019年6月10日の日付を取得するつもりが、55197年後の日付を求めようとして破綻する結果となった。 infoment.hatenablog.com最終的には、主たる原因である「セルの書式設定」を一旦標準に戻すことで、解決することが出来た。ところでその後、コロ子…

範囲選択で遊んでみたお話

今日はExcel VBAの勉強会で、様々な範囲選択で遊んでみた。 まずは、選択範囲をバビーンと横に伸ばしてみる。 Selection.EntireRow.Select 今度は、選択範囲をズドーンと縦に伸ばしてみる。 Selection.EntireColumn.Select 選択範囲のサイズを、指定サイズに…

16385列目のデータ

2016年6月現在、Excel2016の最終列はXFD列(16384列)だ。 ここで、ふと思った。最終列に何某かのデータが入力されている状態で、それ以前のどこかに列挿入を行った場合、XFD列のデータはどうなるのだろうか。試しにやってみた。すると、エラーになった…

ユーザー定義関数で初期値が空っぽの場合

先日、ワークシート関数:TEXTJOINの存在を知った。複数のセルにある文字列を指定して、任意の文字で文字列を結合させることが出来る。例えば、こんな感じだ。まず、セルにA,B,C・・・と一文字ずつ入力する。 次いで、TEXTJOIN関数を用いて、これらを「…

チェックボックスの切り替え

手書きの帳票をそのままExcelに置き換えた書式は、今でも世の中にたくさんある。中でも困るのが、チェックボックスだ。選択肢が二つあって、その中から一つだけ選びたいとする。オプションボタンを使えば、自動的に一つしか選択できなくなるが、管轄が自部署…

ゴールシークとマクロ ③ コレクションのソート

昨日は、複数の解を持つゴールシークマクロについて、成功か!?と一瞬思うところまでたどり着くことが出来た。 infoment.hatenablog.com しかし、実際は不充分。解が5つ以上の場合も、4つまでしか答えが出ない。 なんでだろう。 そこで今日は、その解決に…

ゴールシークとマクロ ② クラスモジュール化(2)

昨日は、複数の解を持つゴールシークマクロについて、サブプロシージャをクラスモジュールに移植してみた。 infoment.hatenablog.com 昨日は、複数解の有無を返すフラグを作成するところまでで力尽きた。 そこで今日は、昨日の続きから再開する。 今回立てた…

ゴールシークとマクロ ② クラスモジュール化(1)

昨日は、ゴールシークの結果が本当にゴールなのか(=途中で力尽きて倒れていないか)を確認してみた。 infoment.hatenablog.com 今日は、今までの結果をクラスモジュールに移植してみる。 ゴールシークにおいて、計算式が入っているセルと値を変化させるセ…

ゴールシークとマクロ ① 無限遠からのアプローチ(4)

昨日は、恐らく既定の回数内に辿り着けなかったであろう「ゴールシーク」の処理について、目標値到達まで処理を繰り返させることに挑戦した。 infoment.hatenablog.com ゴールにたどり着いたか否かについては、目標値との一致率1%未満で評価してみた。しか…

ゴールシークとマクロ ① 無限遠からのアプローチ(3)

前回は、ゴールシークとの開始値を大きくしすぎると、高次の関数に於いて正しい解が求まらないという問題にぶち当たった。 infoment.hatenablog.com 今回は、この点について更に検証してみる。 検証方法は、以下の通り単純だ。 Sub GoalSeekTest() Range("G3…

ゴールシークとマクロ ① 無限遠からのアプローチ(2)

先日は、複数の解を持つ関数についてゴールシークを行う場合、限りなく大きな値から探しに行くことを検討してみた。 infoment.hatenablog.com 結果、消費税のように単純な計算式の場合、「10の30乗」という大きな値からのアプローチでも、一瞬で計算できるこ…

ゴールシークとマクロ ① 無限遠からのアプローチ

昨日は、「ゴールシークが探しに行く向き」について、いくつか実験を行った。 infoment.hatenablog.com 結果、「二次方程式など複数の解がある場合は注意しましょう」という「もわっ」とした結論で強引に結んでしまった。しかし・・・待てよ? ということで…

ゴールシークが探しに行く向き

Excelには、「ゴールシーク」という機能がある。たまに、お世話になっている。ゴールシーク: 必要な値に対し、適切な入力を探します。とある。例えば、B1セルに消費税抜き価格、B2セルに消費税込み価格を表示したとする。B2セルには、計算式「=B1*1.08」が…

Static変数入門(※私が)

一時期、こんなコードを書いていた。 Sub test() MsgBox PriceDict("りんご") End Sub Function PriceDict() As Dictionary Dim tempDict As Dictionary Set tempDict = New Dictionary tempDict("りんご") = 100 tempDict("みかん") = 150 tempDict("ばなな…

行列の交差する値をVBAで取得する、の別解②

昨日は料金表の中から、いくつかの条件に合致する料金を抽出する関数を作成してみた。 infoment.hatenablog.com すると、ことりちゅんさんから、次のようなコメントをいただいた。 DictはStatic変数で良いかな。 ・・・すみません、Static変数って、何ですか…

行列の交差する値をVBAで取得する、の別解①

こちら ↓ にて、INDEX関数とMATCH関数の組合せをVBAでやった場合について紹介されていた。 note.mu これについてコメントを募集されていたので、私も挑戦してみた。 条件をおさらいすると、まず ↓ このような料金表がある。 当該表において、以下の4条件を…

クリップボード情報を、特定の列に並べ直す ~別解②~

昨日は、クリップボード情報を特定ラベルの列に入力する際、Typeステートメントを使用してみた。 infoment.hatenablog.com 本日は、更なる簡略化に挑戦する。 昨日は、セルに名前を付けて管理してみた。従って、一旦Typeに入れるのではなく、セルの名前を使…

クリップボード情報を、特定の列に並べ直す ~別解①~

昨日は、コピーなどの操作で一旦クリップボードに置かれた文字列(3行)を、選択セルの並びにある特定列に配置してみた。 infoment.hatenablog.com 今日は、昨日の内容を少しアレンジしてみる。 今回アレンジするのは、各価を配置する列番号の取得方法。 昨…

クリップボード情報を、特定の列に並べ直す。

本日は、ネット上にあった課題(困りごと)をテーマに挑戦する。 コピーなどの操作で、一旦クリップボードに置かれた文字列(3行)がある。 これを選択セルの並びにある特定列に配置するというもの。 単純に縦から横に並びを変えるだけなら、Transpose関数…

ピボットテーブルのフィルターで、特定の文字列を含まないものだけを表示させる

CSVデータ集計に、Excelのピボットテーブルを用いることがある。定例業務のためVBAでツールを作成して運用していたところ、ユーザー部門から 「〇〇という言葉が含まれる場合を除外したい」 というリクエストがあったので挑戦してみた。 業務の様子を疑似的…

指定フォルダ内にある、一番最後に更新されたファイルを取得

必要に迫られて、指定フォルダ内にある「一番最後に更新されたファイル」を取得することになった。さて、どうしたものか。 我が家の環境で、とりあえず実験。まず最初に、試しに適当なフォルダを選んで、FileSystemObjectでファイルパス等を取得してみた。 S…