記述の規則 開始・終了処理 プログラム制御 ファイル操作
ワークブック・シート操作 セル・行・列の操作 セルの書式設定 関数
ウィンドウ操作 グラフ操作 データベースの操作 印刷
 
Page Index
●セル内の文字列を比較する(InStr、InStrRev関数)
●2つの文字列を比較する(StrComp関数)
●変数/式の状態をチェックする(8種類のIs関数)
●文字列から指定した文字数分の文字列を返す(Mid関数)
●文字列の左端から指定した文字数分の文字列を返す(Left関数)
●文字列の右端から指定した文字数分の文字列を返す(Right関数)
●文字数を数える(Len関数)
●数値を文字列型に変換する(Cstr関数)
●引き渡した数値の絶対値を同じデータ型で返す(Abs関数)
●小文字を大文字に変換する(UCase)関数
●文字列の変換を行う(StrConv関数)
●文字列コードを操作する(Asc関数,Chr関数)
●文字列を数値に変換する(Val関数)
●数値を文字列に変換する(Str関数)
●スペースを削除する(LTrim関数,RTrim関数,Trim関数)
●文字列の置換(Replace関数)
●指定した文字数だけ並べた文字列を返す(String関数)
●日付と時刻を操作する(Date関数、Time関数)
●桁数を揃えながら文字列を連結する
 
本章では、関数の文法や使い方についてコードサンプルを示しながら説明しています。
 
セル内の文字列を比較する(InStr) ↑ このページの最初へ
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])
 
2つのの文字列を比較する(StrComp) ↑ このページの最初へ
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
 
変数/式の状態をチェックする(8種類のIs関数) ↑ このページの最初へ
IsDate関数    値を日付型に変換可能かどうかをチェック
IsNumeric関数  値を数値として評価できるかどうかをチェックする
IsObject関数   識別子がオブジェクトかどうかをチェックする
IsEmpty関数   値がEmptyかどうかを調べる
IsError関数    式がエラー値を持つかをチェック
IsMissing関数  省略可能な変数がプロシージャに渡されたかをチェック
IsNull関数     式にNull値が含まれているかをチェック
IsArray関数    変数が配列かどうかをチェック

ex.
 If IsDate(変数) = False Then     日付形式のチェック
 If IsNumeric(変数) = False Then   数値形式のチェック
 
文字列から指定した文字数分の文字列を返す(Mid) ↑ このページの最初へ
Mid(String,Start,[Length])

ex.
先頭から4文字目が「県」という字かどうかを判断します
 IF(MID(A1,4,1)="県" Then
 
文字列の左端から指定した文字数分の文字列を返す(Left) ↑ このページの最初へ
Left(string, length)

ex.
VBAを表示します
 MsgBox Left("VBA Expert", 3)
 
文字列の右端から指定した文字数分の文字列を返す(Right) ↑ このページの最初へ
Rightt(string, length)

ex.
Expertを表示します
 MsgBox Right("VBA Expert", 6)
 
文字数を数える(Len) ↑ このページの最初へ
Len(string | varname)

ex.
 If Len(DataWord) >5
 
数値を文字列型に変換する(Cstr) ↑ このページの最初へ
MyDouble = 437.324          ' 変数 MyDouble は倍精度浮動小数点数型.
MyString = CStr(MyDouble)     ' 変数 MyString には "437.324"が入る
 
引き渡した数値の絶対値を同じデータ型で返す(Abs) ↑ このページの最初へ
Abs(number)

ex.
If Abs(-100) = 100
 
小文字を大文字に変換する(UCase) ↑ このページの最初へ
UCase(string)

小文字だけが大文字に変換されます.
 
文字列の変換を行う(StrConv関数) ↑ このページの最初へ
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関数,Chr関数) ↑ このページの最初へ
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関数) ↑ このページの最初へ
Val(string)

数値に変換できない文字を読み込んだ時点で変換を中止します
 
数値を文字列に変換する(Str関数) ↑ このページの最初へ
Str(number)
 
スペースを削除する(LTrim関数,RTrim関数,Trim関数) ↑ このページの最初へ
LTrim(string) 先頭のスペース(全角、半角)を取り除く
RTrim(string) 末尾のスペース(全角、半角)を取り除く
Trim(string)  先頭と末尾のスペース(全角、半角)を取り除く
 
文字列の置換(Replace関数) ↑ このページの最初へ
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します

R
eplace(expression, find, replace[, start[, count[, compare]]])

定数
 vbUseCompareOption  -1 OptionCompareステートメントの設定を使用して比較
 vbBinaryCompare    0 バイナリモードで比較(大文字/小文字 半角/全角 ひらがな/カタカナを区別して比較
 vbTextCompare     1 テキストモードで比較(大文字/小文字 半角/全角 ひらがな/カタカナを区別されず五十音で比較
 vbDatabaseCompare   2 Accessのデータベースの設定を使用して比較
 
指定した文字数だけ並べた文字列を返す(String 関数) ↑ このページの最初へ
String(number, character)

number   長整数型 (Long) の値を指定します。文字をいくつ並べるのかを指定する。
character  バリアント型 (Variant) の値を指定します。文字の文字コード、または文字列式を指定する。
        この文字列の先頭文字を number 回繰り返したものを返します
 
日付と時間を操作する(Date関数、Time関数) ↑ このページの最初へ
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
BEAGLE-HC
HOME くすりのこと 研究開発 個別業務 IT 広報・教育 団体・組織

医薬品・医療機器の研究・開発 ポータルサイト
          サイトマップ
 現在位置 : HOME > IT プログラミング > Excel コードライブラリアン(関数)