|
|
|||||||||
| 本章では、関数の文法や使い方についてコードサンプルを示しながら説明しています。 | |||||||||
|
|||||||||
|
InStr関数は、string1の中で、string2が存在する位置を返します
string2がstring1の中に存在しないときInStr関数は0を返します long = InStr([start, ]string1, string2[, compare]) ex. セル範囲A1:B100内で「"aaa"という文字列が含まれる」セルの背景を赤色にします Dim str For Each str In Range("A1:B100") If InStr(str.Value, "aaa") > 0 Then str.Interior.ColorIndex = 3 End If Next str セル内の文字列を比較する(InStrRev) long = InStrRev(string1, string2[,start[,compare]]) InstrRev関数は、文字列 の中から指定された文字列 を最後の文字位置から検索を開始し、最初に見つかった文字位置 (先頭からその位置までの文字数) を返します long = InStrRev([start, ]string1, string2[, compare]) |
|||||||||
|
|||||||||
|
|
String1とString2の2つの文字列を引数Compareで指定した比較モードで比較を行い、その結果を返します StrComp(String1, String2, Compare) ex. セルAとBの文字列を比較し、等しい場合セルの背景を赤色にする。 Dim int For int = 1 To 100 If IStrComp(Cells(i, 1), Cells(i, 2), vbTextCompare = 0 Then Cells(i, 1).Interior.ColorIndex = 3 End If Next |
||||||||
|
|||||||||
| IsDate関数 値を日付型に変換可能かどうかをチェック IsNumeric関数 値を数値として評価できるかどうかをチェックする IsObject関数 識別子がオブジェクトかどうかをチェックする IsEmpty関数 値がEmptyかどうかを調べる IsError関数 式がエラー値を持つかをチェック IsMissing関数 省略可能な変数がプロシージャに渡されたかをチェック IsNull関数 式にNull値が含まれているかをチェック IsArray関数 変数が配列かどうかをチェック ex. If IsDate(変数) = False Then 日付形式のチェック If IsNumeric(変数) = False Then 数値形式のチェック |
|||||||||
|
|
|||||||||
|
|||||||||
|
Mid(String,Start,[Length])
ex. 先頭から4文字目が「県」という字かどうかを判断します IF(MID(A1,4,1)="県" Then |
|||||||||
|
|||||||||
|
Left(string, length)
ex. VBAを表示します MsgBox Left("VBA Expert", 3) |
|||||||||
|
|||||||||
|
Rightt(string, length)
ex. Expertを表示します MsgBox Right("VBA Expert", 6) |
|||||||||
|
|||||||||
|
Len(string | varname)
ex. If Len(DataWord) >5 |
|||||||||
|
|||||||||
|
MyDouble = 437.324 ' 変数 MyDouble は倍精度浮動小数点数型.
MyString = CStr(MyDouble) ' 変数 MyString には "437.324"が入る |
|||||||||
|
|||||||||
| Abs(number) ex. If Abs(-100) = 100 |
|||||||||
|
|||||||||
| UCase(string) 小文字だけが大文字に変換されます. |
|||||||||
|
|||||||||
| StrConv(string,定数) vbUpperCase 1 大文字に変換 vbLowerCase 2 小文字に変換 vbProperCase 3 各単語の先頭の文字を大文字に変換 vbWide 4 半角文字を全角文字に変換 vbNarrow 8 全角文字を半角文字に変換 vbKatakana 16 ひらがなをカタカナに変換 vbHiragana 32 カタカナをひらがなに変換 vbUnicode 64 システム既定のコードページを使って文字列をUnicodeに変換 vbFromUnicode 128 文字列をUnicodeからシステム既定のコードページに変換 StrConv("あいうえお", vbFromUnicode).とすれば、UNICODE → Shift JIS に変換します。 VBA は内部的に UNICODEを使用していています。 |
|||||||||
|
|||||||||
| Asc(文字) 文字をASCIIコードに変換する Chr(コード) ASCIIコードを文字に変換する CR = Chr(13) '改行コード for Macintosh LF = Chr(10) '改行コード for Unix/Linux、UTF-8他 CRLF = Chr(13) & Chr(10) '改行コード for Windows ChrW(コード) Unicode を文字に変換する |
|||||||||
|
|||||||||
| Val(string) 数値に変換できない文字を読み込んだ時点で変換を中止します |
|||||||||
|
|||||||||
| Str(number) | |||||||||
|
|||||||||
| LTrim(string) 先頭のスペース(全角、半角)を取り除く RTrim(string) 末尾のスペース(全角、半角)を取り除く Trim(string) 先頭と末尾のスペース(全角、半角)を取り除く |
|||||||||
|
|||||||||
| 指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します Replace(expression, find, replace[, start[, count[, compare]]]) 定数 vbUseCompareOption -1 OptionCompareステートメントの設定を使用して比較 vbBinaryCompare 0 バイナリモードで比較(大文字/小文字 半角/全角 ひらがな/カタカナを区別して比較 vbTextCompare 1 テキストモードで比較(大文字/小文字 半角/全角 ひらがな/カタカナを区別されず五十音で比較 vbDatabaseCompare 2 Accessのデータベースの設定を使用して比較 |
|||||||||
|
|||||||||
| String(number, character) number 長整数型 (Long) の値を指定します。文字をいくつ並べるのかを指定する。 character バリアント型 (Variant) の値を指定します。文字の文字コード、または文字列式を指定する。 この文字列の先頭文字を number 回繰り返したものを返します |
|||||||||
|
|||||||||
| Date 関数は、時刻のない現在の日付を返します。 Dim Date_1 as Date Msgbox Date '04/04/2006 Msgbox Time '11:57:33 その他の関数 現在の日時、時刻を返す Now 定義済みの書式を使って日付の書式を設定 FormatDateTime(date,format) 日付から日を取り出す Day(Date) 日付から月を取り出す Month(Date) 日付から年を取り出す Year(Date) 日付から時間を取り出す Hour(Time) 日付から分を取り出す Minute(Time) 日付から秒を取り出す Second(Time) 日、月、年の引数を受け取り、再結合された日付を含む日付を返す DateSerial(day,month,year) その日付の曜日を示す定数を返す Weekday(date) (vbMonday、vbTuesday、vbWednesday、vbThursday、vbFriday) その日付の曜日を返す WeekdayName(Weekday(Date) 日付の加算 DateAdd("yyyy", 1, dteThisYear) 2つの日付の間のインターバルを調べる DateDiff("d", dteDate1,dteDate2) |
|||||||||
|
|||||||||
| Sub 桁数を揃えながら文字列を連結する() Dim I, Lastgyo As Integer Const n As Integer = 2 '桁数 '最終行を求める Sheets(1).Activate Cells(16384, 1).Select Lastgyo = Range("A1").End(xlDown).Row '桁数を揃えながら文字列を連結する For I = 1 To Lastgyo If Len(Cells(I, 1)) < n Then Cells(I, 1) = "'" & String(n - Len(Cells(I, 1)), "0") & Cells(I, 1) End If If Len(Cells(I, 2)) < n Then Cells(I, 2) = "'" & String(n - Len(Cells(I, 2)), "0") & Cells(I, 2) End If If Len(Cells(I, 3)) < n Then Cells(I, 3) = "'" & String(n - Len(Cells(I, 3)), "0") & Cells(I, 3) End If Cells(I, 1) = "'" & Cells(I, 1) & Cells(I, 2) & Cells(I, 3) & Cells(I, 4) Next End Sub |
|||||||||
| 文字列関数を使用した例 Sub a() 'list_a(50バイト)内にある "ABC" の数をカウントします。 Const list_a As String = "XXXABCXXXXXABCXXXXXABCXXXXXXABCXXXXXXXXXABCXXXXABC" Dim con As Integer '回数カウント Dim a As Integer 'ABCのポジション Dim list_a_temp As String list_a_temp = list_a a = InStr(list_a_temp, "ABC") While a > 0 cnt = cnt + 1 list_a_temp = Mid(list_a_temp, a + 3, Len(list_a) - a - 2) a = InStr(list_a_temp, "ABC") Wend MsgBox ("""ABC""は " & cnt & "個ありました") End Sub |
|||||||||
| ご意見・ご感想をお寄せください。info@beagle-hc.com ‖ このサイトについて | |||||||||
| Copyright 2006 - 2009 uTRAM Corp. All Rights Reserved | |||||||||