ホーム > ライブラリ

ライブラリ

開発用ライブラリ

 

fBook_Dialog_BeforeClose

BeforeCloseイベントの後に保存確認ダイアログが出るので、
ダイアログを模倣して先に処理してしまう
(BeforeCloseイベントで先にこの関数を呼び、後で他の処理を進める感じで使う)

Book   2018/10/30   shono

fRange_Border_Is田

***************************************************************
指定Rangeに指定罫線が格子状に引かれているか判定

【引数】Range :対象のRange
【引数】Style   :罫線のスタイル
【引数】Color   :罫線の色
【引数】Weight :罫線の太さ
***************************************************************

Border   2018/09/18   shono

fRange_EndRow

***************************************************************
指定Rangeのデータ最終行を取得

【引数】Range :レンジ
              Hidden : 非表示行に対応するオプション
              MergeCell: 結合セルに対応するオプション
***************************************************************

Range   2018/06/30   shono

fRange_EndCol

***************************************************************
指定Rangeのデータ最終列を取得

【引数】Range :対象のRange
              Hidden :非表示列に対応するオプション 
              MergeCell: 結合セルに対応するオプション
***************************************************************

Range   2018/06/30   shono

fRange_LastCol

***************************************************************
指定Rangeの最終列を取得

【引数】Range :対象のRange
***************************************************************

Range   2018/06/30   shono

fRange_LastRow

***************************************************************
指定Rangeの最終行を取得

【引数】Range :対象のRange
***************************************************************

Range   2018/06/30   shono

fString_RightB

***************************************************************
固定長処理用。
文字列の右端から指定バイト数を切り出す
※VBAのRightBが正しい値を返さない為

【引数】Value :対象の文字列
              Length :バイト数
***************************************************************

String   2018/06/30   shono

fString_LeftB

***************************************************************
固定長処理用。
文字列の左端から指定バイト数を切り出す
※VBAのLeftBが正しい値を返さない為

【引数】Value :対象の文字列
              Length :バイト数
***************************************************************

String   2018/06/30   shono

fString_FixLength

***************************************************************
固定長処理用。
文字列を指定バイト数に調整する
2バイト文字に対応

【引数】Value :対象の文字列
              Length :バイト数
***************************************************************

String   2017/11/21   shono

fString_LenB

***************************************************************
文字列のバイト数を取得
※VBAのLenBが正しくバイト数を返せない為

【引数】Value :対象の文字列
***************************************************************

String   2017/11/21   shono

fString_Unvisible_to_Visible

***************************************************************
デバッグ用。
[?]や[・]等と表示されたり, 表示されない制御文字を
見えるようあぶり出す。
例:タブを「[Tab]」等と表示

【引数】Value :対象の文字列
***************************************************************

String   2017/11/21   shono

fString_Right_Count

***************************************************************
文字列の右端で指定値をカウント

【引数】Value :対象の文字列
              Find :検索値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Right_Chop

***************************************************************
文字列の右端を1文字削除(値指定の場合、指定値の場合のみ除去)

【引数】Value :対象の文字列
              Chop :除去したい値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Right_Fix

***************************************************************
文字列の右端が指定値でない場合に補完

【引数】Value :対象の文字列
              FixVal :補完したい値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Right_With

***************************************************************
文字列の右端が指定値か判定

【引数】Value :対象の文字列
              Find :検索値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Left_Count

***************************************************************
文字列の左端で指定値をカウント

【引数】Value :検索対象の文字列
              Find :検索値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Left_Chop

***************************************************************
文字列の左端を1文字削除(値指定の場合、指定値の場合のみ除去)

【引数】Value :対象の文字列
              Chop :除去したい値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Left_Fix

***************************************************************
文字列の左端が指定値でない場合に補完

【引数】Value :対象の文字列
              FixVal :補完したい値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fString_Left_With

***************************************************************
文字列の左端が指定値か判定

【引数】Value :対象の文字列
              Find :検索値
              Compare :文字列判定方法(VbCompareMethodに準拠)
【戻値】
***************************************************************

String   2017/11/21   shono

fString_Count

***************************************************************
文字列をカウント
※様々な方法から、最速の方法でカウント

【引数】Value :検索対象の文字列
              Find :検索値
              Compare :文字列判定方法(VbCompareMethodに準拠)
***************************************************************

String   2017/11/21   shono

fRange_Selection

***************************************************************
選択されているセルを取得する
※指定条件に合致していない場合はエラーを表示させ, Nothingになる
※用途:ユーザが選択しているデータに対して処理する場合に
              取得対象に範囲やエリア数,セル数等の制限をチェックして取得

【引数】UserSel :主にSelectionを指定する
              Row_Min :取得したい範囲の開始行
              Row_Max :取得したい範囲の終了行
              Col_Min :取得したい範囲の開始列
              Col_Max :取得したい範囲の終了列
              Area_Max :取得したいエリア数
              Cell_Max :取得したいセル数
              Alert :アラートを出すオプション
              AlertHead :アラートメッセージの頭出し
***************************************************************

Range   2017/11/21   shono

fRange_Select

***************************************************************
セルを選択する

【引数】Range :選択したいセル
              ScrollRow :スクロール行(0=スクロールしない)
              ScrollCol :スクロール列(0=スクロールしない)
【戻値】
***************************************************************

Range   2017/11/21   shono

fRange_Union

***************************************************************
Rangeを結合させる
※Union関数がNothingに対応していないので対応

【引数】Range1 :レンジ
              Range2 :レンジ
***************************************************************

Range   2017/11/21   shono

fArray_Merge

***************************************************************
2つの配列を結合する(配列の次元数が同じであること)

【引数】Array1 :データ配列(1次元or2次元)
              Array2 :データ配列(1次元or2次元)
              Direction :結合する方向(xlRows=行方向に結合)
***************************************************************

Array   2017/11/21   shono

fArray_DimDown

***************************************************************
配列の次元数を下げる(2次元配列を1次元配列にする)

【引数】DataAry :データ配列
              Direction :1次元に結合する時の方向(xlRows=1行毎に結合する)
***************************************************************

Array   2017/11/21   shono

fArray_Slice

***************************************************************
配列を切り取る
【注意】切り取った配列の要素は, 切り取る場所に合わせている
              例えば{1 to 3}という配列に対して要素2-3(Start=2, End_=3)を切り取った場合、
              戻値の要素は{2 to 3}となる(2次元配列も同様)

【引数】DataAry :データ配列
              Start :切り取る開始位置
              End_:切り取る終了位置(省略時は指定方向のMAX)
              Direction :切り取る方向(xlRows=横方向(1次元), xlColmuns=縦方向(2次元))
              AutoDimDown :データ配列が2次元の場合に, 戻値を1次元配列で返すオプション
【戻値】切り取った配列(データ配列が1次元の場合は1次元配列, 2次元の場合は2次元配列)
***************************************************************

Array   2017/11/21   shono

fArray_to_Dictionary2

***************************************************************
2つの配列をDictionary(辞書)に変換する

【引数】KeyAry :1次元配列(Key用)
              ItemAry :1次元配列(Item用)
***************************************************************

Array   2017/11/21   shono

fArray_to_Dictionary

***************************************************************
配列をDictionary(辞書)に変換する
1次元配列の場合、配列中の値をKeyとした辞書を作成
2次元配列の場合、1列目をKey、2列めをItemとした辞書を作成

【引数】DataAry :データ配列(1次元or2次元)
              IgnoreNullStrKey:Keyに空文字があった場合に除去するオプション
***************************************************************

Array   2017/11/21   shono

fArray_Length

***************************************************************
配列の長さを取得する

【引数】DataAry :データ配列
              Dimension :1次元or2次元の指定(1次元=xlRows, 2次元=xlColmuns)
***************************************************************

Array   2017/11/21   shono

fArray_BaseN

***************************************************************
配列の基底を調整する

【引数】DataAry :データ配列
              Base_Row :1次元の配列のBase
              Base_Col :2次元の配列のBase
***************************************************************

Array   2017/11/21   shono

fArray_Trans

***************************************************************
配列の縦と横を逆転させる
※1次配列(横)の場合は、2次配列(縦)にする

【引数】DataAry:1次元or2次元配列
            Trans:貼付け時、配列の行・列を入れ替えるオプション
                       ※1次元配列の場合、2次元配列に変換し、縦方向に張り付ける
***************************************************************

Array   2017/11/21   shono

fArray_Paste

***************************************************************
指定セルにデータ配列(主にfRange_Valueで取得した配列)を貼り付ける関数

【注意】非表示行があると正しくデータを貼り付けれない(Excelの既存バグ)

【引数】Cell:貼付けセル(1セルで十分。範囲の場合は最初のセルが起点となる)
            DataAry:貼付けるデータ配列
            Trans:貼付け時、配列の行・列を入れ替えるオプション
                       ※1次元配列の場合、2次元配列に変換し、縦方向に張り付ける
            PasteFormula:数式として貼り付けるオプション

【戻値】配列を張付けた範囲のRange
***************************************************************

Array   2017/11/21   shono

fArray_Lbound_Ubound

***************************************************************
配列の要素の下限・上限を、ByRef で返す関数。
主には配列系の関数用に使用。
***************************************************************

Array   2017/11/21   shono

fArray_DimCount

***************************************************************
配列の次元数を返す
***************************************************************

Array   2017/11/21   shono

fArray_IsArray

***************************************************************
既存の IsArray の弱点(型配列で生成されていない場合に判定できない)を克服した関数
***************************************************************

Array   2017/11/21   shono

ナビゲーションウィンドウ

Wordの起動時や検索時に表示される「ナビゲーションウィンドウ」の表示/非表示用

※VBA・マクロで閉じる方法が見つからず、自己解決したので掲載

Word   2017/08/31   shono

VBE_IsProtected

VBProjectにパスワードの保護がかかっているか判定

VBE   2017/07/11   shono

Msg_Show

***************************************************************
メッセージボックスのラッパー

【重要】既存のMsgBoxは引数を[+]して指定するが、
            この関数ではコーディングしやすいよう、
            引数を分類分けしている
            ※1モジュールに下記のコードのみを記述する事を推奨
            ※既存の列挙体(VbMsgBoxStyle等)を、自作列挙体(E_MsgBox_Button)に
               同名のメンバーを作って値をそのままあてることで、
               既存のMsgBoxに影響を与えることなく、違和感が少なく使えるようにしている。

【引数】Message:メッセージ本文
            Icon:vbCritical等のアイコンを指定
            Button:vbOKOnly等を指定
            Default:デフォルトでアクティブになっているボタンを指定
            Title:メッセージのタイトルを指定(ConstのMsg_Titleでデフォルトを調整)

【戻値】vbOK等(必要に応じてEnum の E_MsgBox_Result メンバーを調整)
***************************************************************

MsgBox   2017/07/11   shono

VBE_IsSecurity

オプション設定[VBAへのアクセスを信頼する]の設定値を取得
※VBAでモジュール等を処理する際に必須の判定

VBE   2017/07/11   shono

Diff

Diff のアルゴリズム (Myers) ※もちろんVBAで実装

差分を計算するというのは次の3つを計算すること
LD (LevenshteinDistance)=編集距離   :2つの要素列の違いを数値化したもの
LCS(Longest Common Subsequence) :2つの要素列の最長共通部分列
SES(Shortest Edit Script)                  :ある要素列を別の要素列に変換するための最短手順

DIFF   2017/06/19   shono

fRange_Value, fRange_Formula, fRange_Text

************************************************************************
セルの値を配列で返します
※「fRange_Value」は .Value、
   「fRange_Formula」は .Formula、
   「fRange_Text」は .Text 
 の結果を返します。

【引数】SliceDirection:xlRow or xlColumn を指定すると、
                                  1行 or 1列 のデータを1次元配列で返します。

【重要】配列の要素番号は、行・列番号に合わせて返します。
            そして、行・列をEnumで定義することで、非常に開発しやすくなります。
    ※シート上のセルも、配列の値も、同じ Enum で処理できるのがいいんです!

    Enumで定義する事で、行or列の削除・追加・入替があっても、
          基本的には対象となるEnumのメンバーを削除・追加・入替すればOKなので、
            メンテナンスが超簡単になります!
            ※直接 [Range("A1")] や [Cells(1,2)] 等と書くのはメンテ大変です。。。

            下記のEnumの例で、データ開始行・終了行等を定義しているのは、
            For文等に使う為です(データの開始から終了まで処理する等)
            ※開始、終了の概念でコーディングできるので、可読性UP+メンテUP

    とにかく、1度使えばやみつきになるハズ!!
            ※配列に格納した後で、1行だけ抜き出したいって時には、
               fArray_Slice って関数が便利なので、ライブラリを参照ください~

【例】Enumの個人的な設定例を参考までに掲載しておきます
Enum E_Row_Menu
    Data_S=2                                'データ開始行
        Data1 = E_Row_Menu.Data_S
        Data2
        Data3
    Data_E = E_Row_Menu.Data3   'データ終了行
End Enum
Enum E_Col_Menu
    Data_S=3                                'データ開始列
        フォルダパス = E_Col_Menu.Data_S
        ファイル名
        拡張子
    Data_E = E_Col_Menu.拡張子    'データ終了列
End Enum
************************************************************************

Range   2017/06/19   shono