BEAGLE-HC 医薬品、医療機器の研究・開発 ポータルサイト
 現在位置 : HOME > ITの活用 プログラミング > Word コードライブラリアン(関数)
くすりのこと
 治療薬の最前線
データブック
 ヘルスケア市場
 データブック
 (売上ランキング)
ニュース
 企業ニュース
 (パイプラインニュース)
 (財務・決算ニュース)
 (M&Aニュース)
 メディアニュース
ITの活用
 バリデーション
 セキュリティ
 WORD文書の作成
 プログラミング
 (Word/VBA)
 (Excel/VBA)
 (Access/VBA)
 (SAS)
 (SQL)
イベント
 イベントカレンダ
製薬会社研究
 製薬会社
 製薬会社研究
 決算短信一覧
 
 
 
記述の規則 開始・終了処理 プログラム制御 ファイル操作
文章の操作 表の操作 文章の書式操作 関数
ウィンドウ操作 印刷 サンプルプログラム  
 
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関数)
●文字列を区切って取得する(Split関数)
●桁数を揃えながら文字列を連結する
●文字列を16進表示する
●文字列中の異文字を16進表示する
 
本章では、関数の文法や使い方についてコードサンプルを示しながら説明しています。
 
セル内の文字列を比較する(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 回繰り返したものを返します。

'str_statementの頭にゼロを埋めます(3桁)
n=3
m = Len(str_statement)
If m ,< n Then
f = String(n - m, "0") & str_statement
 
日付と時間を操作する(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)
 
文字列を区切って取得する ↑ このページの最初へ
文字列を区切り文字で分割し、各要素を文字列型の1次元配列に格納して返します。

Dim i As Integer
Dim strDispStr As String
Dim strString As String
Dim varData As Variant

strDispStr = ""
strString = "5,3,1,7,4,6,2"

varData = Split(strString, ",")

For i = 0 To UBound(varData)
  strDispStr = strDispStr & varData(i) & vbCrLf
Next i

MsgBox strDispStr
 
桁数を揃えながら文字列を連結する ↑ このページの最初へ
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
 
文字列を16進表示する ↑ このページの最初へ
MsgBox xString("012")

Function xString(ByVal s As String) As String

  Dim i As Long, srtWrk As String

  For i = 1 To Len(s)

    srtWrk = Mid(s, i, 1) '1文字取り出す
    srtWrk = Hex(AscW(srtWrk))
    srtWrk = "{" & String(Len(srtWrk) Mod 2, 48) & srtWrk & "}"

    xString = xString & srtWrk

  Next

End Function
 
文字列中の異文字を16進表示する ↑ このページの最初へ
MsgBox xString("????")

Function xString(ByVal s As String) As String

  Dim i As Long, srtWrk As String

  For i = 1 To Len(s)

    srtWrk = Mid(s, i, 1)
'1文字取り出す

   
'Unicode文字セットを判定する
    If 31 < AscW(srtWrk) And AscW(srtWrk) < 128 Then

      ElseIf &Hff60 < AscW(srtWrk) And AscW(srtWrk) < &Hffa0 Then

      ElseIf Chr(Asc(srtWrk)) = srtWrk And Asc(srtWrk) < 0 Then

      Else
'Unicode特殊文字
        srtWrk = Hex(AscW(srtWrk))
        srtWrk= "{" & String(Len(srtWrk) Mod 2, 48) & srtWrk & "}"
    End If

     xString = xString & srtWrk

  Next

End Function

↑ このページの最初へ

   ご意見・ご感想をお寄せください。 ‖ お問い合わせはこちらから ‖ このサイトについて           サイトマップ  ‖
  Copyright 2006 - 2013 uTRAM Corp. All Rights Reserved
 
PHARCIS(ヘルスケア最新情報提供)
Facebook for PHARCIS
ClinMark8
アクセスランキング
(2013年5月)

1位 企業ニュース
2位 売上ランキング
3位 メディアニュース
4位 製薬会社
5位 治療薬の最前線
6位 決算短信一覧
7位 データブック
8位 製薬会社研究
9位 イベントカレンダ
10位 パイプラインニュース