よく使う関数を1シートにまとめました
よく使う関数を1シートにまとめました
***************************************************************
固定長処理用。
文字列を指定バイト数に調整する
2バイト文字に対応
【引数】Value :対象の文字列
Length :バイト数
***************************************************************
***************************************************************
文字列のバイト数を取得
※VBAのLenBが正しくバイト数を返せない為
【引数】Value :対象の文字列
***************************************************************
***************************************************************
デバッグ用。
[?]や[・]等と表示されたり, 表示されない制御文字を
見えるようあぶり出す。
例:タブを『[Tab]』と表示
【引数】Value :対象の文字列
***************************************************************
***************************************************************
文字列の右端で指定値をカウント
【引数】Value :対象の文字列
Find :検索値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の右端を1文字削除(値指定の場合、指定値の場合のみ除去)
【引数】Value :対象の文字列
Chop :除去したい値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の右端が指定値でない場合に補完
【引数】Value :対象の文字列
FixVal :補完したい値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の右端が指定値か判定
【引数】Value :対象の文字列
Find :検索値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の左端で指定値をカウント
【引数】Value :検索対象の文字列
Find :検索値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の左端を1文字削除(値指定の場合、指定値の場合のみ除去)
【引数】Value :対象の文字列
Chop :除去したい値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の左端が指定値でない場合に補完
【引数】Value :対象の文字列
FixVal :補完したい値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
文字列の左端が指定値か判定
【引数】Value :対象の文字列
Find :検索値
Compare :文字列判定方法(VbCompareMethodに準拠)
【戻値】
***************************************************************
***************************************************************
文字列をカウント
※様々な方法から、最速の方法でカウント
【引数】Value :検索対象の文字列
Find :検索値
Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************
***************************************************************
選択されているセルを取得する
※指定条件に合致していない場合はエラーを表示させ, Nothingになる
※用途:ユーザが選択しているデータに対して処理する場合に
取得対象に範囲やエリア数,セル数等の制限をチェックして取得
【引数】UserSel :主にSelectionを指定する
Row_Min :取得したい範囲の開始行
Row_Max :取得したい範囲の終了行
Col_Min :取得したい範囲の開始列
Col_Max :取得したい範囲の終了列
Area_Max :取得したいエリア数
Cell_Max :取得したいセル数
Alert :アラートを出すオプション
AlertHead :アラートメッセージの頭出し
***************************************************************
***************************************************************
セルを選択する
【引数】Range :選択したいセル
ScrollRow :スクロール行(0=スクロールしない)
ScrollCol :スクロール列(0=スクロールしない)
【戻値】
***************************************************************
***************************************************************
Rangeを結合させる
※Union関数がNothingに対応していないので対応
【引数】Range1 :レンジ
Range2 :レンジ
***************************************************************
***************************************************************
2つの配列を結合する(配列の次元数が同じであること)
【引数】Array1 :データ配列(1次元or2次元)
Array2 :データ配列(1次元or2次元)
Direction :結合する方向(xlRows=行方向に結合)
***************************************************************
***************************************************************
配列の次元数を下げる(2次元配列を1次元配列にする)
【引数】DataAry :データ配列
Direction :1次元に結合する時の方向(xlRows=1行毎に結合する)
***************************************************************
***************************************************************
配列を切り取る
【注意】切り取った配列の要素は, 切り取る場所に合わせている
例えば{1 to 3}という配列に対して要素2-3(Start=2, End_=3)を切り取った場合、
戻値の要素は{2 to 3}となる(2次元配列も同様)
【引数】DataAry :データ配列
Start :切り取る開始位置
End_:切り取る終了位置(省略時は指定方向のMAX)
Direction :切り取る方向(xlRows=横方向(1次元), xlColmuns=縦方向(2次元))
【戻値】切り取った配列
***************************************************************
***************************************************************
2つの配列をDictionary(辞書)に変換する
【引数】KeyAry :1次元配列(Key用)
ItemAry :1次元配列(Item用)
***************************************************************
***************************************************************
配列をDictionary(辞書)に変換する
1次元配列の場合、配列中の値をKeyとした辞書を作成
2次元配列の場合、1列目をKey、2列めをItemとした辞書を作成
【引数】DataAry :データ配列(1次元or2次元)
IgnoreNullStrKey:Keyに空文字があった場合に除去するオプション
***************************************************************
***************************************************************
配列の長さを取得する
【引数】DataAry :データ配列
Dimension :1次元or2次元の指定(1次元=xlRows, 2次元=xlColmuns)
***************************************************************
***************************************************************
配列の基底を調整する
【引数】DataAry :データ配列
Base_Row :1次元の配列のBase
Base_Col :2次元の配列のBase
***************************************************************
***************************************************************
配列の縦と横を逆転させる
※1次配列(横)の場合は、2次配列(縦)にする
【引数】DataAry:1次元or2次元配列
Trans:貼付け時、配列の行・列を入れ替えるオプション
※1次元配列の場合、2次元配列に変換し、縦方向に張り付ける
***************************************************************
***************************************************************
指定セルにデータ配列(主にfRange_Valueで取得した配列)を貼り付ける関数
【注意】非表示行があると正しくデータを貼り付けれない(Excelの既存バグ)
【引数】Cell:貼付けセル(1セルで十分。範囲の場合は最初のセルが起点となる)
DataAry:貼付けるデータ配列
Trans:貼付け時、配列の行・列を入れ替えるオプション
※1次元配列の場合、2次元配列に変換し、縦方向に張り付ける
PasteFormula:数式として貼り付けるオプション
【戻値】配列を張付けた範囲のRange
***************************************************************
***************************************************************
配列の要素の下限・上限を、ByRef で返す関数。
主には配列系の関数用に使用。
***************************************************************
***************************************************************
配列の次元数を返す
***************************************************************
***************************************************************
既存の IsArray の弱点(型配列で生成されていない場合に判定できない)を克服した関数
***************************************************************
Wordの起動時や検索時に表示される「ナビゲーションウィンドウ」の表示/非表示用
※VBA・マクロで閉じる方法が見つからず、自己解決したので掲載
VBProjectにパスワードの保護がかかっているか判定
******************************************************************************************************************************
メッセージボックスのラッパー
【重要】既存のMsgBoxは引数を[+]して指定するが、
この関数ではコーディングしやすいよう、
引数を分類分けしている。
※1モジュール(例:M_MsgBox)に下記のコードのみを記述する事を推奨
※既存の列挙体(VbMsgBoxStyle等)を、自作列挙体(E_MsgBox_Button)に
同名のメンバーを作って値をそのままあてることで、
既存のMsgBoxに影響を与えることなく、違和感が少なく使えるようにしている。
【引数】Message:メッセージ本文
Icon:vbCritical等のアイコンを指定
Button:vbOKOnly等を指定
Default:デフォルトでアクティブになっているボタンを指定
Title:メッセージのタイトルを指定(ConstのMsg_Titleでデフォルトを調整)
【戻値】vbOK等(必要に応じてEnum の E_MsgBox_Result メンバーを調整)
******************************************************************************************************************************
2021/10/22 改行コードの調整処理を追加
オプション設定[VBAへのアクセスを信頼する]の設定値を取得
※VBAでモジュール等を処理する際に必須の判定