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

オートシェイプの中心を、指定セルの中心に合わせる

昨日、テキストボックスのサイズに合わせて、テキストボックス内の 文字サイズを自動で拡大または縮小する関数を作成した。 infoment.hatenablog.comこれでようやく次に進めると思った矢先、問題が発生した。 問題点: Autosizeで最適なフォントサイズを探る…

テキストボックスのサイズに合わせて、中の文字サイズを変更する

昨日、テキストボックスのサイズに合わせて、既存機能で中の文字サイズを変更しようとしたが出来なかった。 infoment.hatenablog.com無いものは仕方ない、作るとしよう。 作戦としては、こんな感じだ。 テキストボックスの大きさを一旦、文字の大きさピッタ…

テキストボックスに合わせてフォントサイズを変えたい(未解決)

テキストボックス内の文字サイズを、テキストボックスの幅に 合わせて変更したくなった。 ↓ こんなイメージ。 色々と調べるうちに、ここに辿り着いた。 docs.microsoft.comこれは便利!ということで、早速実行してみる。 Sub Macro1() Selection.ShapeRange.…

連想配列のキーの型に関する失敗談

今回は、連想配列のキーに関する失敗談。 以前、こんな処理を行ったことがある。 業務システムからExcelファイル①を出力。 ①のコード列をキーに、品名をアイテムとして連想配列を作成。 別のExcelファイル②のコードを取得し、連想配列に存在する場合は②の品…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その10.使用例:其の二~

先日、テーブル間データ転記のためにまとめたクラスモジュールについて、 その使用例を一つご紹介した。 infoment.hatenablog.com今回も、別の使用例を一つ。 今日は、三つのテーブルを使ってみよう。 テーブルD:転記元 テーブルA:転記先 テーブルB:退…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その9.使用例:其の一~

前々回に、テーブル間のデータ転記をまとめたクラスモジュールを作成した。 (正確には、数学の「集合」を扱うクラスに押し込んだ)。 infoment.hatenablog.com 今回は使用例を一つ、ご紹介。 例えば、1年1組と1年2組で国語と数学のテストがあって、その…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その8.使い処~

前回は、テーブル間の転記に関するまとめを自作の「集合クラス」に統合 してみた。 infoment.hatenablog.com 今日は、このクラスモジュールの使い処について考えてみる。 1.VLOOKUP関数で充分では? ユニークな情報をキーに、テーブルから別のテーブルの情…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その7.亜神誕生~

前回までテーブル間の転記について、色々とあれこれと、作っては直しを 繰り返してきた。 infoment.hatenablog.com 今日は、今まで作ってきたマクロのクラス化に関するお話。 今まで似たような機能のプロシージャを作り溜めるたび、クラスモジュールに まと…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その6.転記先にしかないキーを削除~

前回はテーブル間の転記について、転記する列のラベル名を指定して転記 できるよう、機能拡張してみた。 infoment.hatenablog.com今回は、転記先にしかないレコードキーの扱いについて考えてみる。 例えば、このような場合において。 転記先の「A002:みかん…

テーブル内の8ケタの数字を日付に変換

前回まで、テーブル間の転記についてあれこれとマクロを作ってみた。 infoment.hatenablog.com 今日は、小ネタで閑話休題。 基幹システムなどからデータを受け取って成形するとき、個人的に頻繁に 遭遇するのが ↓ このパターン。 日付がyyyymmdd(数字8桁)…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その5.複数列をラベル名で指定~

前回はテーブル間の転記について、転記元が空白の場合は、転記先へ 上書きする/しないを選択できるようにしてみた。 infoment.hatenablog.com ところで前回までは、一列転記するか全部転記するかの二択だった。 しかし、例えば10列の内7列だけ転記したい場…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その4.空白列を無視~

前回はテーブル間の転記について、転記先にキー情報がない場合は、 キーを追加したうえで情報を転記することに挑戦した。 infoment.hatenablog.com 前回までは、転記元が空白であって転記先に何らかの値が入っている場合、 無条件で空白を上書きしていた。と…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その3.新規レコード追加~

前回はテーブル間の転記について、キー列情報を元にテーブル全体をガバッと転記することに挑戦した。 infoment.hatenablog.com 前回までは、転記元に新規に追加されたレコードのキーが転記先にない場合、 そのレコードは転記されない仕様になっていた。とい…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ ~その2.全部転記~

前回はテーブル間の転記について、配列と連想配列の組合せによる転記を紹介した。 infoment.hatenablog.com 前回までは指定列をキーに、もう一つの指定列を転記対象として処理していた。 つまり、転記対象が一列のみであった。ということで今回は、テーブル…

テーブルから別テーブルへの転記 ③ 配列と連想配列の組合せ

前回はテーブル間の転記について、連想配列を用いて行う方法を紹介した。 infoment.hatenablog.com 今回は、配列と連想配列の組み合わせによる転記に挑戦する。 前回に続き、こちらのテーブルを使用する。 作戦は、こんな感じだ。 1.転記元テーブルのキー…

テーブルから別テーブルへの転記 ② 連想配列による転記

前回はテーブル間の転記について、Findメソッドで検索した結果を用いて 行う方法を紹介した。 infoment.hatenablog.com 今回は、辞書(連想配列)を用いた転記方法に挑戦する。 前回に続き、こちらのテーブルを使用する。 テーブルBのコードと対になる数量…

集計フィールドで計算(ピボットテーブル)

このような問いかけがあったので、考えてみた。 在庫管理データから、倉庫別の在庫数を計算したい。 このような場合、手っ取り早い方法の一つとしてピボットテーブルを お勧めしたい。 1. 集計したい範囲を選択する。 在庫数を除く、↓ の範囲を選択する。在…

テーブルから別テーブルへの転記 ① Findメソッドで探して転記

最近Excelで、テーブル間の転記を自動化する依頼を頻繁に受けている。 そこで、これについて思うところを数回に分けて書いてみようと思う。 例えば、↓ こんな感じのテーブルがあるとする。 ここで、↓ このテーブルの情報を、商品コードをキーにしてテーブル…

最小値を求める問題のグラフを描いてみる

高一数学の問題について、長男から質問を受けた。 説明のためにExcelで、aを変化させたときの放物線を描いてみた。この式は、このように変形できる。 従って、 で、下に凸な放物線となる。放物線の軸はとなるので、 の範囲を含ませて、の間で変化させてみた…

切り替えたら元に戻す(画面更新などなど)

Excelマクロを実行中、画面更新を停止すると高速化が期待できる。 と、色々なサイトに書いてある。多くの場合、これは正しいようだ。今回は 「これが効かない場合」の話ではなく、処理が終わった後について思うこと を書いてみる。 私も処理の高速化を目的と…

範囲Bから範囲Aを除外する

先日、高校数学の「集合」を、VBAで理解することを試みた。 infoment.hatenablog.com 眺めていて、ふと思った。これって、範囲の引き算に使えないか? 範囲Bから範囲Aを取り除いた、新たな範囲を取得したい。 作戦は至って単純で、こんな感じだ。 範囲…

BEEPで音階

知らなかった。こんなことが、できたとは。 excel-ubara.com早速遊んでみた。 楽譜は、こんな感じ。一行のうち、左が音階、右が音の長さを表す。 演奏するためのコードがこちら。楽譜を選択して実行すると、曲になる。はず。 Option Explicit Declare PtrSaf…

短めのコードで特定のセル範囲を編集不可に

先日、このようなご質問をいただいた。 短めのコードで特定のセル範囲を編集不可にすることは可能でしょうか? そこで、色々と考えてみた。 今回は、こんな作戦を立ててみた。 ワークシートのSelectionChangeイベントを用いる。 編集不可の範囲を変数に格納…

VBAを用いた集合の理解 ⑥ まとめ

先日から高校数学の学び直しとして、VBAを用いた集合の理解に挑戦していた。 infoment.hatenablog.com 今日は、今までのまとめから。 ここしばらく業務で使ってみたが、個人的にはそれなりに重宝している。 例えば、こんな感じだ。 帳票Aを、日々更新す…

VBAを用いた集合の理解 ⑤ 差集合と補集合

先日から高校数学の学び直しとして、VBAを用いた集合の理解に挑戦している。 infoment.hatenablog.com 今日も、先日の続きから。 今回は、集合Bから集合Aの要素を除いた差を求めてみる。 差集合(B-A) 作戦は至ってシンプル。 集合Bに相当する配列…

VBAを用いた集合の理解 ④ 和集合と積集合

先日から高校数学の学び直しとして、VBAを用いた集合の理解に挑戦している。 infoment.hatenablog.com 今日も、先日の続きから。 今日は、和集合と積集合について考えてみる。 例えば、以下のグループがあるとする。 Aグループ:りんご、みかん、ばなな …

VBAを用いた集合の理解 ③ 集合Aは集合Bの部分集合

先日から高校数学の学び直しとして、VBAを用いた集合の理解に挑戦している。 infoment.hatenablog.com 今日も、先日の続きから。 先日までは、要素aが集合Aに含まれるか否かの判定を、そして更に集合Aを 一次元配列として、要素aの追加と削除を行って…

VBAを用いた集合の理解 ② aを集合Aの要素として追加または除去

昨日から高校数学の学び直しとして、VBAを用いた集合の理解に挑戦している。 infoment.hatenablog.com今日も、昨日の続きから。 集合の理解といいつつ、二日目にして早くも逸脱する。なぜなら集合を配列で表したため、個人的に要素の追加および削除を機能…

VBAを用いた集合の理解 ① aは集合Aの要素である

子供から、数学の集合について訊かれた。高校を卒業して三十余年、 「そういえば、そんな話もあったっけ?」 ぐらいの認識だ。当時は思考も漠としていて、先生たちの話は常に意識の表層を滑り 抜けていた感覚だけが記憶に残っている(=脳に刺さっていない)…

連想配列を用いた無作為な並べ替え

↓ このようなお題をいただいたので、挑戦してみた。 データをランダムに並べ替えてください。 今回の作戦は、こんな感じだ。 1. 並び変え用の通し番号を格納した、連想配列を作成する。 2. 1~15の中から一つ、無作為に自然数を取得する。 取得は、RANDBE…