VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。
Function nicknameGet(Optional num As Integer = 1, Optional numPlus As Boolean = False) As Collection
Dim objIE92 As InternetExplorer
Dim objTag92 As Object
Dim i As Integer, n As Integer
Dim tmp As Variant
Dim strN As String, strA As String, arrInt As String, strNum As String
Dim arrNickName As New Collection
'ニックネームページをIE(InternetExplorer)で起動
Call ieView(objIE92, "http://www.vba-ie.net/code/nicknamedata.html", False)
'語尾にプラスする枝番
If numPlus = True Then
strNum = makeRndInt(50, 9999)
Else
strNum = ""
End If
'ランダムでテーブルの行番号を取得(語頭用)・・・接続回数分(num)
For n = 1 To num
arrInt = arrInt & "," & makeRndInt(1, 50)
Next n
'先頭の,を削除
arrInt = Right(arrInt, Len(arrInt) - 1)
'テーブルの行番号を配列に格納(語頭用)
tmp = Split(arrInt, ",")
Set objTag92 = objIE92.document.getElementsByTagName("table")(0)
'語尾を取得(配列回数分)
For i = LBound(tmp) To UBound(tmp)
strN = strN & objTag92.Rows(tmp(i)).Cells(0).innerText 'ニックネーム
strA = strA & objTag92.Rows(tmp(i)).Cells(1).innerText 'ニックネーム(ローマ字)
Next i
'ランダムでテーブルの行番号を取得(語尾用)
i = makeRndInt(1, 50)
strN = strN & objTag92.Rows(i).Cells(2).innerText & strNum 'ニックネーム
strA = strA & objTag92.Rows(i).Cells(3).innerText & strNum 'ニックネーム(ローマ字)
arrNickName.Add strN, "N" 'ニックネーム
arrNickName.Add StrConv(strN, vbKatakana), "NKW" 'ニックネーム(カナ[全角])
arrNickName.Add StrConv(StrConv(strN, vbKatakana), vbNarrow), "NKN" 'ニックネーム(カナ[半角])
arrNickName.Add StrConv(StrConv(strA, vbWide), vbUpperCase), "NAWU" 'ニックネーム(ローマ字[全角][大文字])
arrNickName.Add StrConv(strA, vbUpperCase), "NAWL" 'ニックネーム(ローマ字[全角][小文字])
arrNickName.Add StrConv(strA, vbWide), "NANU" 'ニックネーム(ローマ字[半角][大文字])
arrNickName.Add strA, "NANL" 'ニックネーム(ローマ字[半角][小文字])
Set nicknameGet = arrNickName
'IEオブジェクトを閉じる
objIE92.Quit
End Function
こちらは戻り値が必要ですので、functionプロシージャで対応しています。引数には「連結回数」「数字の有無」の2つが設定されています。以下が引数の詳細になります。
構文 | nicknameGet([num][,numPlus]) | ||||
---|---|---|---|---|---|
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
num | Integer | 連結回数 | 1,3,5 | 1 | ● |
numPlus | Boolean | 数字の有無 | True,False | False | ● |
戻り値 | |||||
データ | 配列key | 命名ルール | 内容 | ||
ニックネーム(ひらがな) | N | NickName | NickName(ニックネーム)の頭文字をkey設定。 | ||
ニックネーム(カナ[全角]) | NKW | NickName Ktakana Wide | NickName(ニックネーム),Katanaka(カタカナ),Wide(全角)の頭文字をkey設定。 | ||
ニックネーム(カナ[半角]) | NKN | NickName Ktakana Narrow | NickName(ニックネーム),Katanaka(カタカナ),Narrow(半角)の頭文字をkey設定。 | ||
ニックネーム(ローマ字[全角][大文字]) | NAWU | NickName Alphabet Wide Upper | NickName(ニックネーム),Alphabet(ローマ字),Wide(全角),Upper(大文字)の頭文字をkey設定。 | ||
ニックネーム(ローマ字[全角][小文字]) | NAWL | NickName Alphabet Wide Nower | NickName(ニックネーム),Alphabet(ローマ字),Wide(全角),Lower(小文字)の頭文字をkey設定。 | ||
ニックネーム(ローマ字[半角][大文字]) | NANU | NickName Alphabet Narrow Upper | NickName(ニックネーム),Alphabet(ローマ字),Wide(全角),Upper(大文字)の頭文字をkey設定。 | ||
ニックネーム(ローマ字[半角][小文字]) | NANL | NickName Alphabet Narrow Nower | NickName(ニックネーム),Alphabet(ローマ字),Wide(全角),Lower(小文字)の頭文字をkey設定。 |
「num」「numPlus」は任意項目です。「num」には、ニックネームの語頭の連結回数を設定します。現在、ニックネームページには語頭×50、語尾×50ですので、全パターンは2500パターンあります。
一意のニックネームを要求される場合は、同一ニックネームになる恐れがありますので、語頭部分の連結回数を指定することで、パターンを増やすことができます。例えば、連結回数を3に設定した場合、語頭×50×50×50、語尾×50で全パターン625万パターンになります。次に「numPlus」ですが、こちらは語尾に任意の数字を連結するかの有無になります。「True」を選択するとニックネームの語尾に50~9999のいずれかの数値が連結されます。初期設定は「False」に設定されているので、数字連結をしない場合は設定しないようにしてください。