0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Excel】VBA関数

Last updated at Posted at 2021-02-26

文字列関数

 △は半角空白を表す。
 ▲は全角空白を表す。

関数 説明 コード 結果 備考
Asc 文字 ⇒ AscII Asc("A")
ASC("ABC")
65
65
変換するのは1文字目だけ
Chr ASCII ⇒ 文字 Chr(65) A
LCase 大文字⇒小文字 LCase("AbCdE") abcde
UCase 小文字⇒大文字 UCase("AbCdE") ABCDE
Len 文字長 Len("あいうABC") 5 全/半角問わず1文字
Left 左端の部分文字列を生成 Left("ABCDE", 4) ABCD
Right 右端の部分文字列を生成 Right("ABCDE", 4) BCDE
Mid 中央の部分文字列を生成 Mid("ABCDE", 2, 3)
Mid("ABCDE", 2)
BCD
BCDE
(文字列, startPos, length)
InStr 包含判定(先頭から走査) InStr("ABCDE", "BCD")
InStr("ABABC", "AB")
InStr("ABCDE", "1")
2
1
0
一致 : 一致した先頭文字位置
不一致 : 0
InStrRev 包含判定(末尾から走査) InStrRev("ABCDE", "BCD")
InStrRev("ABABC", "AB")
InStrRev("ABCDE", "1")
2
3
0
一致 : 一致した先頭文字位置
不一致 : 0
Space 空白文字列の生成 Space(3) △△△
String 繰り返し文字の生成 String(3, "A")
String(5, "B")
AAA
BBBBB
Trim 空白削除(両端) Trim("△▲aaa△▲")) aaa 全角半角問わず空白を削除
RTrim 空白削除(右端)
LTrim 空白削除(左端)
Replace 置換 Replace("ABCDDABC", "AB", "ZZ") ZZCDDZZC

StrConv

 文字列を様々な形式で変換する。

意味 コード 説明
大文字⇔小文字 StrConv("aBcDe", vbUpperCase)
StrConv("aBcDe", vbLowerCase)
StrConv("abcde", vbProperCase)
ABCDE
abcde
Abcde
全角⇔半角 StrConv("123", vbWide)
StrConv("123", vbNarrow)
123
123
かたかな⇔ひらがな StrConv("あいぁぃ", vbKatakana)
StrConv("アイァィ", vbHiragana)
アイァィ
あいぁぃ

数学

関数 説明 コード 結果 備考
Fix 整数部の取得 Fix(99.999)
Fix(-99.999)
99
-99
Int 整数部の取得 Int(99.999)
Int(-99.999)
99
-100
負値の場合 切り上げ(+1)される
Rand 乱数の取得 Rnd 乱数の幅は(0.0 ~ 1.0)
Round 四捨五入 Round(1.5)
Round(2.5)
Round(3.5)
2
2
4
厳密には丸め(JIS丸め、銀行型丸め、最近接偶数丸め)
で四捨五入と少し結果が違う

データの型判定

 ・IsXXX()で型が妥当か判定できる。
 ・例) IsDate, IsNull, IsArray

IsDateで判定可能なフォーマットの種類について

 ・詳しくはリンクのIsDate参照。
 ・OK 2020/9/1, 10/3, 20 10 4, 令和元年10月
 ・NG 2020.10.5 (カンマ区切りはだめなので/に変換する等の必要あり)

データの型変換

 ・CXXX()という関数名。
・CDate(str), CByte(str)など
 ・例) String ⇒ Date型, String ⇒ Byte型

日付

| 説明 | コード | 結果 | 備考 |
|:--|:--|:--|:--|:--|
| 現在時刻の取得 | Date
Now
Time
| YYYY/MM/DD
YYYY/MM/DD HH24:mi:ss
HH24:mi:ss | 戻り値 : Date型 |
| 年月日時分秒の取得| Year
Month
Day
Hour
Minute
Second
Weekday | YYYY
MM
DD
HH24
mi
ss
1 ~ 7(日 ~ 土曜日)| 戻り値 : 整数|
| 年月日時分秒の取得(汎用)| DatePart("yyyy", date)| 2021 | 上記の関数を一つに汎用化|
| 数値 ⇒ 日付型 | DateSerial(2021, 4, 1)
DateSerial(2021, 4, 0)
TimeSerial(15, 10, 30)
TimeSerial(15, -10, 30)
TimeSerial(15, 10, -30)| 2021/04/01
2021/03/31
15:10:30
14:50:30
15:09:30 | 日にちが0 : 前日末日|
| 日付の加減算 | DateAdd("yyyy", 2, Now)
DateAdd("m", -2, Now) | | マイナスの指定も可能 |
| 日付の差| DateDiff("yyyy", "2020/01/01", "2021/01/01")
DateDiff("m", "2020/01/01", "2021/01/01")
DateDiff("d", "2020/01/01", "2021/01/01")| 1
12
366 | 1年は12か月, 1年は365日 |

参考サイト

文字列関数 : [リンク] (https://excel-ubara.com/excelvba1/EXCELVBA347.html)
IsDate : リンク
数学/型判定/型変換 : [リンク] (https://excel-ubara.com/excelvba1/EXCELVBA348.html)
日付 : [リンク] (https://excel-ubara.com/excelvba1/EXCELVBA346.html)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?