すでにあるのかもしれないけど、jQuery無しで動作するHTMLテーブルのソートのやつを作りました。
Git初心者なのでコミットログが汚い...
とりあえず公開してみた状態なので、そのうち直したりしてみようかなと思ってます。
下記はデモページの埋め込み
すでにあるのかもしれないけど、jQuery無しで動作するHTMLテーブルのソートのやつを作りました。
Git初心者なのでコミットログが汚い...
とりあえず公開してみた状態なので、そのうち直したりしてみようかなと思ってます。
下記はデモページの埋め込み
Not (Mid(strInput, i, 1) Like "[ヲ-゚]" Or strInput = "-")
で不要な文字種を除外。
※"[ヲ-゚]“と”-“を指定するとカタカナひらがなの必要そうな文字列を抽出できる。
”-“を半角カナに含みたくない場合はstrInput = "-"
を外す。
その後StrConvで一度文字列を半角カナに変換してからStrCompのバイナリモードで比較することで、
半角カナの判定ができる。
'/** ' * isHankakuKana ' * 入力文字列が半角カナかを調べる ' * @param strInput 調べる文字列 ' * @return True:半角カナ False:半角カナではない ' */ Public Function isHankakuKana(ByVal strInput As String) As Boolean Dim i As Long '空文字の場合は判定前にFalse If strInput = "" Then isHankakuKana = False Exit Function End If '記号や数字、アルファベット等の場合はFalse For i = 1 To Len(strInput) If Not (Mid(strInput, i, 1) Like "[ヲ-゚]" Or strInput = "-") Then isHankakuKana = False Exit Function End If Next i '文字を半角カナに変換し、不整合ならFalse Dim hankakuKana As String hankakuKana = StrConv(strInput, vbKatakana + vbNarrow) isHankakuKana = StrComp(hankakuKana, strInput, vbBinaryCompare) = 0 End Function Sub test() Debug.Print isHankakuKana("アイウエオ") Debug.Print isHankakuKana("バビブベボ") Debug.Print isHankakuKana("パピプペポ") Debug.Print isHankakuKana("゙") Debug.Print isHankakuKana("゚") Debug.Print isHankakuKana("-") Debug.Print isHankakuKana("アイウエオ") Debug.Print isHankakuKana("あいうえお") Debug.Print isHankakuKana("abcdefg") Debug.Print isHankakuKana("ABCD") Debug.Print isHankakuKana("123456") Debug.Print isHankakuKana("。゙") Debug.Print isHankakuKana("") End Sub
Accessでは、Option Compareステートメントによって文字列の比較方法が決定される。
モジュールを作成した際には自動でDatabaseモードが付加されるが、
この記述を削除し、何も書かなかった場合の既定値はBinaryモードとして定義されている。
モード | 概要 |
---|---|
Binary | バイナリで比較する。 大文字小文字、半角全角、ひらがなカタカナが区別される |
Text | OSの設定にもとづいて比較する。 大文字小文字、半角全角、ひらがなカタカナを区別しない |
Database | DBの設定にもとづいて比較する。 |
Databaseのときにどうなっているのかよくわからなかったけど、OSの設定に準じてるような挙動らしいので、
Textの場合はOS依存、Databaseの場合はAccessが作られたOS(が設定された自分自身?)という基準で比較してそう。
日本のOSで作る限りはText≒Databaseみたいなもんなのかな。
文字列比較の関数使用時に必要があれば、vbBinaryCompare,vbTextCompare,vbDatabaseCompareのような定数を用いて
比較関数のモードを変えることができるので厳密に比較する必要がある箇所以外はどのモードでもあまり問題なさそう。