XLCTextEx - Excel 用テキスト処理関数アドイン

概要

XLCTextEx は、Excel に

を追加する C API 方式のアドインです。

いずれも SUBSTITUTE 関数や REPLACE 関数などの文字列を処理するワークシート関数と同様に使用してください。

「関数の挿入」ダイアログを利用する場合、「関数の分類」リストボックスに TextEx が追加されますので、これを選択すれば一覧が表示されます。

Excel 2007 以降では、いくつかの関数はスレッドセーフな関数として登録されます。これらの関数はマルチスレッド対応として扱われます。

目次

  1. インストール
  2. XLCRegEx : 正規表現によるテキスト処理関数
    1. 関数一覧
    2. オプション
    3. パターン
    4. 置換文字列と対象文字列
    5. 付録
      1. General_Category 属性に指定できる属性値
      2. Script 属性に指定できる属性値
      3. Block 属性に指定できる属性値
  3. XLCTr : 文字変換関数
    1. 関数一覧
    2. オプション
    3. 文字変換の指定
  4. XLCGrep : 正規表現による行抽出
    1. XLCGrep の使用方法
  5. 使用例
  6. VBA からの利用
  7. バグ情報

使用上の注意

著作権、免責

更新履歴

XLCTextEx 1.05b (2014/04/27)
  • XLCToZenkakuKana 関数を追加しました。この関数は、半角カナのみを全角に変換します。
  • サンプルのユーザーフォームに XLCToZenkakuKana 関数の使用例を追加しました。
  • 空値の扱い等、いくつかのバグを修正しました。
XLCTextEx 1.05a (2013/09/16)
  • マニュアル修正。
XLCTextEx 1.05a (2013/09/13)
  • XLCRegExValue 関数を次のように変更しました。
    • 通貨記号があっても処理を続けるようにしました。(読み飛ばします。)
    • 数字の直後に % があれば、得られた値を 100 で割ります。
  • マニュアル修正。
XLCTextEx 1.05 (2013/09/06)
  • マニュアル修正。
XLCTextEx 1.05 (2013/07/28)
  • XLCGrep コマンドを追加しました。関数ではありませんので、ワークシートの計算式で使用することはできません。主に VBA からの利用を想定しています。
    XLCGrep は Unix の grep と同様に条件に当てはまる行を出力するものです。Excel のフィルタとは以下の点で異なります。
    • 行ごとにセルのデータを結合し 1 行のテキストに変換してから調べます。したがって、特別な操作をしなくてもすべての列での検索や複数のセルにまたがったテキストを検索することができます。
    • 数値(通貨や日付も含む)は、各セルに設定されている表示形式に従ってテキストに変換してから他のセルのデータと結合します。
    • 条件に当てはまった行はクリップボードにテキストとしてコピーされます。
    フィルタで XLCRegExMatch 関数等を使用することができますので(参照:使用例「フィルタの検索条件に使用する」)、通常はフィルタで十分と思われますが、パターンにマッチする文字列がどの列にあるか特定できない場合や、一つのデータが複数のセルに分かれている場合などは XLCGrep の方が操作が簡単な場合もあります。
  • サンプルファイルを 0.40 に差し替えました。XLCGrep の使用例が追加されています。
XLCTextEx 1.04a (2013/07/15)
  • バグ修正。
  • サンプルファイルを 0.30 に差し替えました。
XLCTextEx 1.04 (2013/07/07)
  • XLCRegExValue 関数を追加しました。これは文字列から数値を取り出す関数ですが、標準の VALUE 関数に XLCRegExFormat などの関数を組み合わせたものとはいくつかの点で動作が異なります。
XLCTextEx 1.03 (2013/06/21)
  • パフォーマンスを改善しました。
  • XLCTr 関数の -n オプションにバグがありましたので修正しました。
XLCTextEx 1.02 (2013/06/14)
  • エスケープシーケンスが連続した場合に正しく解釈しない場合がありましたので修正しました。
  • 後方参照の番号による選択に不備がありましたので修正しました。
XLCTextEx 1.01 (2013/06/02)
  • 照合条件が長さ 0 になるときに、正しく処理できない場合がありましたので、これを修正しました。
  • q オプションを指定すると、オプションが正しく解釈されない場合がありましたので、これを修正しました。
XLCTextEx 1.00 (2013/05/29)
  • 付属のサンプルファイルを Sample_UserForm_0.21.xls に差し替えました。
XLCTextEx 1.00 (2013/05/27)
予定していた機能を一通り実装しましたので、1.00 として公開することにしました。
  • [. .] 使用時の判定に不備がありましたので、訂正しました。
  • ドキュメントの構成を変更しました。
  • サンプルマクロ(ユーザーフォーム 0.20)を添付しました
XLCTextEx 0.99 (2013/05/19)
  • Excel 2007 以降において、以下の関数をスレッドセーフとして動作するように変更しました。それにより、これらの関数はマルチスレッドに対応できるようになりました。
    XLCRegExMatchXLCRegExFormatXLCRegExFormatIfXLCRegExReplaceXLCTrXLCToHiraganaXLCToKatakanaXLCToZenkakuXLCToHankakuXLCNormalizeWidth
XLCTextEx 0.98a (2013/05/16)
  • パフォーマンス改善とバグ訂正
XLCTextEx 0.98 (2013/05/13)
  • バグ訂正
XLCTextEx 0.98 (2013/05/10)
  • バグ訂正
XLCTextEx 0.98 (2013/05/09)
正規表現処理関数
  • n オプションを追加しました。このオプションを指定すると、正規化してから比較します。
文字変換関数
  • n オプションを追加しました。このオプションを指定すると、照合要素 [. .] において正規化してから比較します。
  • w オプションを追加しました。このオプションを指定すると、全角のメタキャラクタも半角のものと同じとみなします。
  • XLCNormalizeWidth 関数を追加しました。この関数は、全角の英数記号を半角に、半角カタカナを全角に変換します。
XLCTextEx 0.97 (2013/04/11)
文字の照合を行う関数を新たに作成し、以下の点を変更しました。
  • l (L の小文字)オプションで、ひらがな・カタカナの小文字と通常の文字を区別しないマッチングを指定できるようにしました。前バージョンまででこのようなマッチングを行いたい場合は、d オプションを指定するようになっていましたが、このオプションは本来、濁点・半濁点やダイアクリティカルマークを区別しないマッチングを行うためのものです。l オプションの追加により、これらを別々に指定できるようになりました。
  • ブラケット表現 [ ] で範囲を使用した場合、オプションに対応できないことがありましたが、今回の変更より、オプションの指定通りにマッチするようになりました。
XLCTextEx 0.96 (2013/03/17)バグ修正
  • Excel 2003 およびそれ以前のバージョンにおいて、引数を空文字列とすると正しく処理できない場合があるのを修正しました。
XLCTextEx 0.96 (2013/03/15)
  • XLCSimpleTr は XLCRegEx と共通する部分が多いので、XLCRegEx の追加機能として一つにまとめ、名称を XLCTextEx と変更しました。バージョン番号は XLCRegEx のものを引き継いでいます。
  • 正規表現処理での変更点
    • 濁点・半濁点付のひらがな・カタカナには複数の表し方がありますが、それらとブラケット表現 [ ] 内の照合要素(collating element)[. .] がマッチするようにしました。例えば、[[.ガ.]] は ガ(U+30AC)以外に、カ゛(U+30AB + U+309B)、ガ(U+30AB + U+3099)にもマッチします。さらに w オプションを指定すると、ガ(U+FF76 + U+FF9E)にもマッチします。
  • 文字変換処理での変更点
    • 正規表現の処理と同様に、[. .] で複数の文字をまとめることができるようになりました。
    • 以下の関数を追加しました。
      XLCToHiraganaXLCToKatakanaXLCToZenkakuXLCToHankaku
XLCSimpleTr 0.1 (2013/02/27)
  • サンプル追加、バグ訂正
XLCSimpleTr 0.1 (2013/02/26)
  • バグ訂正
XLCSimpleTr 0.1 (2013/02/25)
  • XLCSimpleTr 公開
XLCRegEx 0.95 (2013/02/18)
  • 関数 XLCRegExFormatIf 関数を追加しました。
  • 関数 XLCRegExFormat 関数を、マッチしなかった場合は空文字列を返すように変更しました。
  • [ ] 内において、文字集合の演算(和、積、差、対象差)ができるようになりました。
  • 文字境界や改行の判定、大文字・小文字を区別しないマッチングを Basic Unicode Support に準拠するものに変更しました。
    今回のバージョンアップで Basic Unicode Support に一通り対応できるようになりました。(参照 Unicode Technical Standard #18 "Unicode Regular Expressions"
  • q オプションのバグ修正。
XLCRegEx 0.94 (2013/02/12)
  • \p{ } で以下の Unicode 属性を指定できるようになりました。
    Script, Alphabetic, Uppercase, Lowercase, White_Space, Noncharacter_Code_Point, Default_Ignorable_Code_Point
  • \p{ } で属性値を別名でも指定できるようにしました。
  • 選択処理 (?(<名前>) | )、(?('名前') | ) を実装しました。
  • パターンにおける文字エスケープの要不要(\ の要不要)を調整しました。
XLCRegEx 0.93 (2013/01/25)
  • \u、\u{ } で Unicode コードポイントを使用できるようになりました。また、 \u{ } では複数のコードポイントを指定することができます。
  • \p{ } で Unicode の General_Category または Block を指定できるようになりました。
  • 置換文字列に空文字列を指定できないというバグを修正しました。
  • [: :] 型文字クラスの照合判定に不備がありましたので修正しました。
XLCRegEx 0.92 (2012/12/26)