「エンジニアが1時間未満で解くべき五つの問題」をVBAで解く

今年、流行った「五つの問題」を今頃、知りました。
色々な言語での解答が発表されていますが、おそらく誰もやらないであろう、VBAで挑戦してみました。
私がVBAの最大の弱点だと思うのが配列。ところがこの「五つの問題」はどれも配列を使わないと解けません。これに苦戦しました。 (さらに…)

VBAで順列

VBAで配列を与えると全ての順列を返すユーザー定義関数を紹介します。
JavaScriptの配列関連メソッドをVBAのユーザー定義関数に | You Look Too Cool
で紹介したユーザー定義関数のうち「splice」「push」「concat」が必要です。 (さらに…)

マイナンバー(個人番号)の正誤を確認するユーザー定義関数

Excelでマイナンバー(個人番号)の正誤を確認するユーザー定義関数を作りました。

二つの関数があります。
一つは「kensasuji_kojin」で個人番号12桁の左から11桁を与えると検査数字(チェックデジット)を返します。
もう一つがメインで「is_kojin_bango」で個人番号を与えると先頭11桁から求まる検査数字と末尾1桁の数字を比較し合致すればTrueを返します。12ケタのチェックもします。
例えばA1セルに個人番号を入力し、B1セルに「=is_kojin_bango(A1)」と入力します。
使用に関しては自己責任でお願いします。 (さらに…)

全てのシートの名前を配列で取得するマクロ

開いているExcelブックのすべてのシートの名前を配列で取得するマクロです。
これ自体は意味がないですが、他のマクロに組み込んで使えると思います。
Excel2013で確認しました。 (さらに…)

Excel2013のピボットテーブルのラベル

Excel2013でピボットテーブルを使うと以前のバージョンではフィールド名が表示されていたところが「行ラベル」「列ラベル」となってしまいます。

ピボットテーブルを使うとメニューに「ピボットテーブルツール」が現れます。
これの「デザイン」を使うと見た目を変更することができます。
メニューの デザイン - レイアウト - レポートのレイアウト で「表形式で表示」を選択すると以前のように「行ラベル」「列ラベル」でなくフィールド名が表示されます。

デフォルトでは「コンパクト形式で表示」が選択されているようです。
実際は小計の行が表示されたりしてコンパクトではないのですが。

外字の有無をチェックするユーザー定義関数

もう2015年だというのにWindowsで「外字」を使ったデータに遭遇しました。
標準で使える文字に置き換える、もしくは文字を画像として作るのが定番となって久しいと思っていたので、驚きました。
ともあれ、外字の有無をチェックする必要が生じたので、ユーザー定義関数を作ってみました。

シフトJISの場合、16進で0xF000-0xFFFCが外字の領域になります。
VBAにはAscという関数があり、文字列の先頭のコードを返します。このコードはシフトJISのコードと比べると、外字の領域を含む範囲では、ちょうど0x10000の分だけ少ないので、これを利用します。 (さらに…)

ExcelのテーブルをJSON形式に変換するマクロ

ある目的があって試しに作ってみたところ簡単にできたものの実際には使わなかったマクロを紹介します。
ExcelのテーブルをJSON形式に変換するマクロです。
次のような表があったとします。 (さらに…)

VBAでクイックソート(改良版)

前にVBAでクイックソートをする方法を紹介しましたが、配列の扱いがよく分からず、CSVに変換して行う方法でした。
今回、配列の処理方法が分かったので、コードを書き直してみました。
処理が劇的に速くなりました。バブルソートなど他のソートとは比較になりません。 (さらに…)

VBAでReDimを使って配列の無駄を省く

VBAで配列を使うにはDimで宣言する必要がありますが、ReDimを使うと配列のサイズを変えることができます。
基本的な使い方をメモしておきます。 (さらに…)

VBAでクイックソート

前にVBAでバブルソートと選択ソートを行うためのユーザー定義関数を紹介しましたが、今回はクイックソートについて作ってみました。

追記(2015年8月31日)
改良版について記事を書きました。 (さらに…)

新しい記事 | 古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報