|
|
本章では、関数の文法や使い方についてコードサンプルを示しながら説明します。 |
|
|
|
long = InStr([start, ]string1, string2[, compare])
InStr関数は、string1の中で、string2が存在する位置を返す。
string2がstring1の中に存在しないときInStr関数は0を返す。
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関数は、文字列 の中から指定された文字列 を最後の文字位置から検索を開始し、最初に見つかった文字位置 (先頭からその位置までの文字数)
を返す
|
|
|
|
|
StrComp(String1, String2, Compare)
String1とString2の2つの文字列を引数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)="県"
|
|
|
|
|
|
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からシステム既定のコードページに変換. |
|
|
|
|
|
Asc(文字) 文字をASCIIコードに変換する
Chr(コード) ASCIIコードを文字に変換する |
|
|
|
|
|
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(date) 日付から時間を取り出す
Minute(date) 日付から分を取り出す
Second(date) 日付から秒を取り出す
DateSerial(day,month,year) 日、月、年の引数を受け取り、再結合された日付を含む日付を返す
Weekday(date) その日付の曜日を示す定数を返す
(vbMonday、vbTuesday、vbWednesday、vbThursday、vbFriday)
DateAdd("yyyy", 1, dteThisYear) 日付の加算
DateDiff("d", dteDate1,dteDate2) 2つの日付の間のインターバルを調べる |
|
|
|
|
Me.フィールド名.BackColor = RGB(128, 192, 192) |
|
|
|
|
Int(数式) '引数を超えない最大の整数を返す
Fix(数式) '引数からその小数点以下の部分を取り除いた数を返す |
|
|
|
|
Abs(数式) |
|
|
|
|
Sgn(数式)
Sgnの戻り値
正の数 1
0 0
負の数 -1 |
|
|
|
|
Rnd(数値) |
|
|
|
|
RetVal = Shell("C:\Program Files\Microsoft Office\Office10\WINWORD.exe",
1) 'WORDを起動する
Retval = Shell("C:\Windows\Notepad.exe", 1)
SendKeys "あいうえお", True 'メモ帳を起動して「あいうえお」を書き込む |
|
|
|
|
Dim myFname As String
myFname = Dir("C:\OFFICE_XP\*.xls")
Do While myFname <> ""
myFname = Dir()
Loop |