Skip to content

Instantly share code, notes, and snippets.

@furyutei
furyutei / 0.README.md
Last active February 17, 2023 09:20
[VBA] Dictionaryを使った簡易配列の実装

[VBA] Dictionaryを使った簡易配列の実装

VBAでDictionaryを簡易的な配列代わりに使う(任意の値を.Addしていき、それらの値の配列を.Itemsとして取り出す)手法がありますが、.Addするときにキーを被らないようにするためにはひと工夫必要です。
キーとしては.Countを使うのが簡単ですが、それだと.Remove後に追加するときにはキー被りが発生してしまいます
その辺りを少し工夫して、.Remove後でも追加もできるような実装を考えてみました。

ソースコード

@furyutei
furyutei / 0.README.md
Last active July 12, 2022 09:23
[VBA] 漢数字を算用数字に変換

[VBA] 漢数字を算用数字に変換

【お題】 VBAで漢数字を算用数字に変換してください。

例:千八百万六千五百→18,006,500

カンマはあってもなくてもよいです。オプションで選べるとなおよし。皆さんどんな解答作りますか?

@furyutei
furyutei / 0.README.md
Last active June 30, 2022 00:51
[Excel][VBA] 斜め罫線のような背景色を設定する試み
@furyutei
furyutei / 0.README.md
Last active June 24, 2022 15:21
[Excel][VBA] 迷路を作って解く試み

[Excel][VBA] 迷路を作って解く試み

はやりにのっかって(?)[^1]エクセルVBAで迷路を作って解くというのをやってみました。

image

……といっても、としじ@toshi81350036 さん作成された迷路を作る方と、りゅうりゅう@blacklist_ryu さん作成された迷路を解く方 をくっつけてちょっといじっただけで、オリジナリティとかはありません……(をい)。
[^1] なお、はやりは再帰だという説もありますが、本項では再帰は使用しておりません💦

ダウンロード

@furyutei
furyutei / 0.README.md
Last active May 13, 2022 09:47
[Excel][Power Query] TextToListEx():Text.ToList()でサポートされていないサロゲートペアや異体字セレクタに簡易的に対応した関数

[Excel][Power Query] TextToListEx():Text.ToList()でサポートされていないサロゲートペアや異体字セレクタに簡易的に対応した関数

Text.ToList()は文字列を文字のListに変換するPower Query M関数ですが、サロゲートペアや異体字セレクタには対応していないようです。
これらに簡易的に対応した関数(TextToListEx)を試作してみました(関連ツイート)。
(え、結合文字? 知らない子ですね……)

詳細エディター
関数クエリ
呼び出された関数例

@furyutei
furyutei / 0.README.md
Last active May 11, 2022 04:03
[VBA] VBEThemeColorToolを用いたVisual Basic Editor(VBE)のコードの表示色設定サンプル
@furyutei
furyutei / 0.README.md
Last active November 2, 2023 10:38
[Excel][VBA] 入力規則の設定によりブックが壊れてしまう例/入力規則リストの参照範囲を動的に変更する例

[Excel][VBA] 入力規則の設定によりブックが壊れてしまう例/入力規則リストの参照範囲を動的に変更する例

エクセルの入力規則(リスト)をVBA(Range.Validation.Add())で設定したときに、場合によってはブックが壊れてしまう、という話。
特にリストをカンマ区切りの文字列で直接指定するような場合は、255文字を超えないように要注意(リスト(候補)が動的に変わるような場合、カンマ区切りで直接指定するよりも、ワークシートの範囲参照で指定するのがベター)。

入力規則リストの参照範囲を動的に変更する例

下記のような不具合が発生しないように、リスト(候補)はワークシートへの参照の形で指定するのがよいと考えられる。
参照範囲は固定範囲(予め想定される最大の範囲)でもよいが、ここでは参照元の候補数が更新された場合に、Worksheet_Changeイベントによって参照範囲を動的に変更するようにしている

ソースコード

@furyutei
furyutei / 0.README.md
Last active May 9, 2022 13:09
[Excel][VBA] CsvParser: CSVをパースするためのクラスモジュール

[Excel][VBA] CsvParser: CSVをパースするためのクラスモジュール

ExcelでCSVファイルをパースする(読み込んで行列データにする)場合には、PowerQueryやADODB.RecordSetを使う(自分も先日やってました)のが定番ですが(その他の方法もあり・詳細はこちらの記事がわかりやすいかと)、

ということで、用途によっては使いにくいケースもあります。

そこで、CSVを読み込むためのクラスモジュールを作成してみました(正規表現を使って地道にパースしています)。

@furyutei
furyutei / 0.README.md
Last active March 25, 2022 23:00
[Excel][VBA] Schema.iniを用意してADODB.RecordsetでCSVを読み込む試み

[Excel][VBA] Schema.iniを用意してADODB.RecordsetでCSVを読み込む試み

フォローしている方々の間でCSVの取り扱いについて盛り上がっているみたいだったので(発端は吉田 拳さんのツイート?)、以前目にしたもののスルーしていたSchema.iniを用いる方法を試してみました。

※その後、独自のCsvParserクラスモジュールを試作してみました
ただし、そちらはパフォーマンスが低下してしまうため、

  • 文字数制限(1セル255文字まで)
  • 列数制限(最大255列まで)
@furyutei
furyutei / 0.README.md
Last active January 26, 2022 07:23
[ユーザースクリプト] GoogleアナリティクスのカスタムURLパラメータを外してリダイレクト

[ユーザースクリプト] GoogleアナリティクスのカスタムURLパラメータを外してリダイレクト

GoogleアナリティクスのカスタムURLパラメータ(utm_*)がついたりつかなかったりするとブックマークが分散してしまって私的に嫌なので、これを除去したURLにリダイレクトするユーザースクリプトを作ってみました。

まぁスマホやタブレットでブックマークした場合は除去できないのであれですけどね……。