日付や時刻を操作する関数
- Now 現在日時を返す
Range("A1") = Now
-> 2014/4/19 10:58:00
- Year(Now) 現在年を返す
- Month(Now) 現在月を返す
- Day(Now) 今日の日付を返す
- 01時02分 のような表示にするには、Format関数を利用する
- Hour(Now) 時間を返す
- Minute(Now) 現在何分かを返す
- Second(Now) 現在秒を返す
- DataSerial(年,月,日) 日付データ(シリアル値)を返す
MsgBox DateSerial(Year(Now), Month(Now), Day(Now))
-> 2014/04/19
文字列を操作する関数
- Len 文字数を返す
MsgBox Len("Excel VBA")
-> 9- スペースも1文字とカウントされる
- Left(文字列,文字数) 文字列の左端から文字数目までを返す
Range("A1") = Left("東京都千代田区", 3)
-> 東京都
- Right(文字列,文字数) 文字列の右端から文字数目までを返す
Range("A1") = Right("東京都千代田区", 4)
-> 千代田区
- Mid(文字列,開始位置,文字数) 文字列の開始位置から指定した文字数文を返す
Range("A1") = Mid("東京都千代田区", 3, 2)
-> 都千- 文字数を省略した場合には、開始位置から後ろ全部を返す
Range("A1") = Mid("東京都千代田区", 3)
-> 都千代田区
- LCase(文字列) 小文字化
MsgBox LCase("MicroSoft")
-> microsoft
- UCase(文字列) 大文字化
MsgBox UCase("MicroSoft")
-> MICROSOFT
- LTrim(文字列) 指定した文字列の左端にあるスペースを取り除く
- RTrim(文字列) 指定した文字列の右端にあるスペースを取り除く
- Perlで言うところの
chomp
みたいなもんかな?
- Perlで言うところの
- Trim(文字列) 指定した文字列の両端にあるスペースを取り除く
- Replace(文字列,検索文字列,置換文字列)
MsgBox Replace("株式会社", "株式", "有限")
-> 有限会社MsgBox Replace("株式会社", "株式", "")
-> 会社
- InStr(文字列,検索文字列) 検索文字列が存在する位置を返す
MsgBox InStr("株式会社", "会")
-> 3
- StrConv(文字列,文字種) 文字列を指定した文字の種類に変換して返す
MsgBox StrConv("えくせる", vbKatakana)
-> エクセル
- Format(元の値,書式) 値に書式を適用した結果を返す
MsgBox Format(1234, "#,##0円")
-> 1,234円MsgBox Format(Now, "ggge年m月")
-> 平成26年4月
- Int(数値) 小数点を切り捨てて、整数値を返す
MsgBox Int(1.234)
-> 1
- Abs(絶対値) 絶対値を返す
MsgBox Abs(-5) + Abs(-7)
-> 12
ユーザーと対話する関数
MsgBox(文字列,ボタンとアイコン,タイトル) メッセージボックスを表示し、ユーザがどのボタンをクリックしたかを返す
vbOK
OKボタンが押されたvbCancel
Cancelボタンが押されたvbAbort
中止ボタンが押されたvbRetry
再試行ボタンが押されたvbIgnore
無視ボタンが押されたvbYes
はいボタンが押されたvbNo
いいえボタンが押された- MsgBox関数の結果を利用するときは、引数全体を()で囲む。表示のみであれば()は必要ない。
Dim rc As Long rc = MsgBox("保存しますか?", vbYesNo + vbQuestion) If rc = vbYes Then MsgBox "保存します" Else MsgBox "保存しません" End If
InputBox(メッセージ,タイトル,最初に表示する文字列)
Dim buf As String buf = InputBox("Please Input", "INPUTBOX", "Dummy") Range("A1") = buf
- キャンセルボタンを押したときには、空の文字列
“”
が返る
``` Dim buf As String buf = InputBox("Please Input", "INPUTBOX", "Dummy")
If buf = "" Then MsgBox "Canceld" Else Range("A1") = buf End If ```
- キャンセルボタンを押したときには、空の文字列
Dir(ファイル名) ファイル名が存在すればそのファイル名を返し、存在しなければ空文字列
“”
を返すDim FileName As String FileName = Dir("C:\Book1.xls") If FileName = "" Then MsgBox "C:\Book1.xls is Not Found" Else MsgBox "C:\Book1.xls is Found" End If
- val(文字列) 文字列形式の数値を、数値形式に変換する
関数の組み合わせ
- スペースで区切って表示する
Name = "斉藤 一" Space = InStr(Name, " ") MsgBox Left(Name, Space) '斉藤 MsgBox Mid(Name, Space) '一