VBA
昨日は、テーブルのデータを列単位で格納して、配列を作成する際の 失敗談を紹介した。 infoment.hatenablog.com 実はこの事例の発展形として、個人的に作成頻度が高いのがこちら。 テーブルの列を指定して重複のないリストを作成 ということで、今日は ↑ こ…
例えば、こんなテーブルについてのお話。 このテーブル(行数可変)で、こんな処理を行ったとする。 Sub Test() ' 名前列の値を配列に格納。 Dim arr As Variant arr = ActiveSheet.ListObjects(1).ListColumns("名前").DataBodyRange ' 一つずつイミディエ…
先日から、処理速度に影響する画面更新などを一時停止する クラスモジュールを作成している。 infoment.hatenablog.com 今日は、そのまとめ。 先日来、どちらにするか悩んでいたのが、↓ の 「Call Init」の個所。 初期化と同時に、自動で初期設定している。…
先日から作成中のクラスモジュールに、シート削除関数を設けている。 その過程で遭遇した現象について、再現方法が分かったので紹介する。 その現象とは「Excelの強制終了」という恐ろしいもの。どこにどのような 影響があるか分からないので、正直、試すこ…
前回は指定文字を含むシート、または含まないシートを纏めて消してみた。 infoment.hatenablog.com 今日も、前回の続きから。 自動処理をする過程で、例えばこのように、年月を6ケタの数字で表した 名前のシートが複数登場する場合がある。 これらを「数字…
前回は、マクロの処理速度に影響しそうなものを纏めて止めてみた。 infoment.hatenablog.com今日も、前回の続きから。 マクロで自動処理する際、一時的な作業用シートを作成する場合がある。 そこで一時的なシートには、消去の可否を示す目印をつける場合が…
昨日は、警告を出さずにシートを削除してみた。 infoment.hatenablog.com今日も、昨日の続きから。 シート削除時の警告メッセージのように、自動処理中の速度を低下させたり 中断するもの。私の認識では、それは以下の4つだと思う。 画面更新(ScreenUpdati…
昨日、こんなブログを書いてみた。 infoment.hatenablog.com書いてみて気が付いた。Applicationと書くのが面倒くさいのではなく、 このようにスイッチを切ったり入れたりするのが、実は面倒なんだと。 ' 警告表示を一時停止。 Application.DisplayAlerts = F…
マクロで自動処理する際、処理の高速化などを目的として画面更新を 一時的に停止する場合がある。↓ そのための、超有名な一文がこちら。 Application.ScreenUpdating = False ところで先日、Applicationと入力中に突然、猛烈に面倒くさくなった。 「Appl」ま…
Excelに日付印を模したオートシェイプを押印する、クラスモジュールを 作成した。そこで、現時点の最終形をこちらに載せておく。 ※不定期に更新の可能性あり。使い方は、新規に作成したクラスモジュールに、これを丸ごとコピー& ペーストしていただければO…
先日から時代の流れ(脱ハンコ)に逆らい、Excelで日付印の描画に挑戦中だ。 前回は、マクロファイル以外にも押印できるようにしてみた。 infoment.hatenablog.com 今日も、前回の続きから。 前回作成したマクロを、職場のある方に紹介した。 すると、こんな…
先日から時代の流れ(脱ハンコ)に逆らい、Excelで日付印の描画に挑戦中だ。 前回は、日付印の色や部署、押印者名およびフォントの設定をシート側に記し、 マクロに馴染みがない人でもカスタマイズできるようにしてみた。 infoment.hatenablog.com 今日も、…
先日から時代の流れ(脱ハンコ)に逆らって、Excelで日付印の描画に 挑戦している。前回は、日付印としての形が完成するところまで作り 込んでみた。 infoment.hatenablog.com今日も、前回の続きから。 今回作成したクラスモジュール「Stamp」。この中で特に…
先日から時代の流れ(脱ハンコ)に逆らって、Excelで日付印の描画に 挑戦している。前回は円を描き、その中央に日付を入れてみた。 infoment.hatenablog.com今日も、前回の続きから。 日付印の作成は、以下の手順で行う。 必要な座標などを全て最初に計算す…
先日から時代の流れに逆らって、Excelで日付印の描画に挑戦している。 前回は、各座標を求める計算を一通り行った。これについて幾つか間違いが あったため、まず修正したものを再掲する。 日付印の作成は、以下の手順で行う。 必要な座標などを全て最初に計…
昨今、「脱ハンコ」が叫ばれている。 そげんこつ言われとるとですけど、職場から、いっちょんハンコが 無くならんとですよ。 ということで時代に逆らって、Excelで日付印の描画に挑戦する。 今回作成するのは、こんな感じの判子だ。とりあえず、手動操作で作…
ふと、思った。 そういえば、Excelのフォントサイズで、「10.5」ってあるな。 例えば、A1セルのフォントサイズの型を調べてみると、Doubleとある。 なので、小数点を含む設定が可能なのだろう。 1. フォントサイズ 10.4 の場合 A1セルのフォントサイズを…
昨日、テキストボックスのサイズに合わせて、テキストボックス内の 文字サイズを自動で拡大または縮小する関数を作成した。 infoment.hatenablog.comこれでようやく次に進めると思った矢先、問題が発生した。 問題点: Autosizeで最適なフォントサイズを探る…
昨日、テキストボックスのサイズに合わせて、既存機能で中の文字サイズを変更しようとしたが出来なかった。 infoment.hatenablog.com無いものは仕方ない、作るとしよう。 作戦としては、こんな感じだ。 テキストボックスの大きさを一旦、文字の大きさピッタ…
テキストボックス内の文字サイズを、テキストボックスの幅に 合わせて変更したくなった。 ↓ こんなイメージ。 色々と調べるうちに、ここに辿り着いた。 docs.microsoft.comこれは便利!ということで、早速実行してみる。 Sub Macro1() Selection.ShapeRange.…
今回は、連想配列のキーに関する失敗談。 以前、こんな処理を行ったことがある。 業務システムからExcelファイル①を出力。 ①のコード列をキーに、品名をアイテムとして連想配列を作成。 別のExcelファイル②のコードを取得し、連想配列に存在する場合は②の品…
先日、テーブル間データ転記のためにまとめたクラスモジュールについて、 その使用例を一つご紹介した。 infoment.hatenablog.com今回も、別の使用例を一つ。 今日は、三つのテーブルを使ってみよう。 テーブルD:転記元 テーブルA:転記先 テーブルB:退…
前々回に、テーブル間のデータ転記をまとめたクラスモジュールを作成した。 (正確には、数学の「集合」を扱うクラスに押し込んだ)。 infoment.hatenablog.com 今回は使用例を一つ、ご紹介。 例えば、1年1組と1年2組で国語と数学のテストがあって、その…
前回は、テーブル間の転記に関するまとめを自作の「集合クラス」に統合 してみた。 infoment.hatenablog.com 今日は、このクラスモジュールの使い処について考えてみる。 1.VLOOKUP関数で充分では? ユニークな情報をキーに、テーブルから別のテーブルの情…
前回までテーブル間の転記について、色々とあれこれと、作っては直しを 繰り返してきた。 infoment.hatenablog.com 今日は、今まで作ってきたマクロのクラス化に関するお話。 今まで似たような機能のプロシージャを作り溜めるたび、クラスモジュールに まと…
前回はテーブル間の転記について、転記する列のラベル名を指定して転記 できるよう、機能拡張してみた。 infoment.hatenablog.com今回は、転記先にしかないレコードキーの扱いについて考えてみる。 例えば、このような場合において。 転記先の「A002:みかん…
前回まで、テーブル間の転記についてあれこれとマクロを作ってみた。 infoment.hatenablog.com 今日は、小ネタで閑話休題。 基幹システムなどからデータを受け取って成形するとき、個人的に頻繁に 遭遇するのが ↓ このパターン。 日付がyyyymmdd(数字8桁)…
前回はテーブル間の転記について、転記元が空白の場合は、転記先へ 上書きする/しないを選択できるようにしてみた。 infoment.hatenablog.com ところで前回までは、一列転記するか全部転記するかの二択だった。 しかし、例えば10列の内7列だけ転記したい場…
前回はテーブル間の転記について、転記先にキー情報がない場合は、 キーを追加したうえで情報を転記することに挑戦した。 infoment.hatenablog.com 前回までは、転記元が空白であって転記先に何らかの値が入っている場合、 無条件で空白を上書きしていた。と…
前回はテーブル間の転記について、キー列情報を元にテーブル全体をガバッと転記することに挑戦した。 infoment.hatenablog.com 前回までは、転記元に新規に追加されたレコードのキーが転記先にない場合、 そのレコードは転記されない仕様になっていた。とい…