LoginSignup
2
2

More than 5 years have passed since last update.

Summary

  1. Ariawase is cool VBA library ( by @igeta )
  2. Example of core functions

Ariawase.Core

Core
├── Collections
│   ├── ArrConcat
│   ├── ArrFlatten
│   ├── ArrIndexOf
│   ├── ArrLen
│   ├── ArrRank
│   ├── ArrSlice
│   ├── ArrUniq
│   ├── Pop
│   ├── Unshift
│   ├── Arr2DToJagArr
│   ├── JagArrToArr2D
│   ├── ArrToClct
│   ├── ClctToArr
│   ├── CreateDictionary
│   ├── ArrCompare
│   ├── ArrEquals
│   └── BitFlag
│
├── Strings
│   ├── LeftA
│   ├── RightA
│   ├── SepA
│   ├── StringWidth
│   ├── ToStr
│   ├── CreateRegExp
│   ├── ReMatch
│   ├── ReMatchGlobal
│   ├── ReReplace
│   └── ReTrim
│
├── Numeric
│   ├── Around
│   ├── IncrPre
│   ├── IncrPst
│   ├── IsInt
│   ├── Max
│   └── Min
│
├── Date
│   ├── BeginOfMonth
│   ├── EndOfMonth
│   ├── BeginOfWeek
│   └── EndOfWeek
│
├── Display
│   ├── Formats
│   └── Dump
│
├── Equality
│   ├── Eq
│   ├── Equals
│   └── Compare
│
├── Eval
│   ├── EvalJS
│   └── EvalVBS
│
└── Others
    ├── CreateStdRegProv
    └── Init

Collections

Sub test()

    '2つの配列を一つの配列にします
    Debug.Print Dump(ArrConcat(Array(1, 2, 3), Array(10, 20, 30)))
    'Array(1%, 2%, 3%, 10%, 20%, 30%)

    'ネストを一段解除した配列にします
    Debug.Print Dump(ArrFlatten(Array(Array(1, 2, 3))))
    'Array(1%, 2%, 3%)

    '該当する文字(数字)の配列の場所を返します(なければ -1)
    Debug.Print Dump(ArrIndexOf(Array("A", "B", "C"), "B"))
    '1&

    '配列の長さを返します
    Debug.Print Dump(ArrLen(Array(1, 2, 3)))
    '3&

    '配列の次元を返します
    Debug.Print Dump(ArrRank(Array(1, 2, 3)))
    '1%

    '配列をスライスします
    Debug.Print Dump(ArrSlice(Array(1, 2, 3, 4, 5), 1, 3))
    'Array(2%, 3%, 4%)

    '配列の重複してる要素をまとめます
    Debug.Print Dump(ArrUniq(Array(1, 1, 1, 2, 2, 2)))
    'Array(1%, 2%)

    'コレクションの最後の要素をとりだします
    Debug.Print Dump(Pop(ArrToClct(Array(1, 2, 3))))
    '3%

    'コレクションの最初の要素を取り出します
    Debug.Print Dump(Unshift(ArrToClct(Array(1, 2, 3))))
    '1%

    'ジャグ配列をつくります
    Dim jagArray: jagArray = Array(Array("A"), Array("B"))
    'jagArray(0)(0) = "A"
    'jagArray(1)(0) = "B"

    'ジャグ配列から2次元配列をつくります
    Dim arr2D: arr2D = JagArrToArr2D(jagArray)
    'arr2D(0,0) = "A"
    'arr2D(1,0) = "B"

    '2次元配列からジャグ配列をつくります
    Dim jArray: jArray = Arr2DToJagArr(arr2D)
    'jArray(0)(0) = "A"
    'jArray(1)(0) = "B"

    '配列からコレクションをつくります
    Dim clct: Set clct = ArrToClct(Array(1, 2, 3))
    'Item1 = 1
    'Item2 = 2
    'Item3 = 3

    'コレクションから配列をつくります
    Debug.Print Dump(ClctToArr(clct))
    'Array(1%, 2%, 3%)

    '(key,value)という指定でディクショナリーをつくります
    Dim dict: Set dict = CreateDictionary("One", 1, "Two", 2, "Three", 3)
    'Item 1 = ("One, 1)
    'Item 2 = ("Two, 2)
    'Item 3 = ("Three, 3)

    'ビット演算をおこなう
    Debug.Print Dump(BitFlag(False, True))
    '1&

End Sub

Strings

Sub test()

    Dim str: str = "本日は晴天なり!"

    '文字列を左から指定の文字数で切り出します
    Debug.Print Dump(LeftA(str, 5))
    '"本日"

    '文字列を右から指定の文字数で切り出します
    Debug.Print Dump(RightA(str, 5))
    '"り!"

    '文字列を指定の文字数で2つに分け配列で返します
    Debug.Print Dump(SepA(str, 5))
    'Array("本日", "は晴天なり!")

    '文字列の長さをかえします
    Debug.Print Dump(StringWidth(str))
    '16$

    '文字列にします
    Debug.Print Dump(ToStr(99))
    '"99"

    'オブジェクトの場合はオブジェクト名称をかえします
    Debug.Print Dump(ToStr(CreateDictionary("One", 1)))
    '"Dictionary"

    Dim str2: str2 = "本日は晴天なり!晴天なり!"

    '正規表現オブジェクトを参照なしにつくります
    Dim reg: Set reg = CreateRegExp("晴天")
    Debug.Print reg.test(str2)
    'True

    '正規表現を使用します

    Debug.Print Dump(ReMatch(str2, "晴天"))
    'Array("晴天")

    Debug.Print Dump(ReMatcheGlobal(str2, "晴天"))
    'Array(Array("晴天"), Array("晴天"))

    Debug.Print Dump(ReReplace(str2, "晴天", "雨天"))
    '"本日は雨天なり!晴天なり!"

    Debug.Print Dump(ReTrim(str2, "晴天.*"))
    '"本日は"

End Sub

Numeric

Sub test()

    '数字を丸めます
    Debug.Print Dump(ARound(1.2345, 1))
    'CDec(1.2)

    'よくわかってません。。。。
    Debug.Print Dump(IncrPre(1)) '2%
    Debug.Print Dump(IncrPst(1)) '1%

    '数字の場合trueをかえします
    Debug.Print Dump(IsInt(1)) 'true

    '最大値・最小値をかえします
    Debug.Print Dump(Max(1, 2, 3)) '3%
    Debug.Print Dump(Min(1, 2, 3)) '1%

End Sub

Date

Sub test()

    '月・週の初末をかえします

    Dim day As Date: day = #10/24/2016#

    Debug.Print Dump(BeginOfMonth(day))
    '#10/1/2016#

    Debug.Print Dump(EndOfMonth(day))
    '#10/31/2016#

    Debug.Print Dump(BeginOfWeek(day))
    '#10/23/2016#

    Debug.Print Dump(EndOfWeek(day))
    '#10/29/2016#

End Sub

Display

Sub test()

    '指定したフォーマットで出力します
    Debug.Print Dump(Formats("{0:MM/dd}", #10/24/2016#))
    '"10/24"

    'Debug.Printで出力できない分も出力します
    Debug.Print Dump(Array(1, 2, 3))
    'Array(1%, 2%, 3%)

End Sub

Equality


    'よくわかってません。。。。

Eval


    'よくわかってません。。。。

Others


    'よくわかってません。。。。

Ariawaseはこちらから

Ariawase

その他

Ariawase Coreモジュールの関数一覧の作り方


$ cat core.bas | grep "Public Function" | awk -F' ' '{print $3}' | sed -e 's/(.*//g'
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2