VBA開発関連

Excel VBA関数

引数 expression には、置換の対象となる文字列を指定します。

引数 find には、検索する文字列を指定します。

引数 replace には、置き換える文字列を指定します。

引数 start は省略可能です。検索開始位置を指定します。

引数 count は省略可能です。置き換える文字列の個数を指定します。

引数 compare は省略可能です。文字列を比較するモードを指定します。

解説

任意の文字列で、特定の文字列を、指定した文字列に置き換えた文字列を返します。

引数compareには次の定数を指定できます。

数値 内容
-1 Option Compareの設定で比較します
0 バイナリモードで比較をします
1 テキストモードで比較します
2 Microsoft Accessでのみ使用できます

Replace関数は文字列を置換する関数ですが、任意の文字列を空欄に置換することで、結果的に特定の文字列を除去することができます。

 

 

セルに数式を入力/取得する

www.moug.net

Sub Sample1()
     Range("C1").Formula = "=A1+B1"             '----(1)A1形式で相対参照
'    Range("C1").Formula = "=$A$1+$B$1"         '----(2)A1形式絶対参照
'    Range("C1").FormulaR1C1 = "=R1C1+R1C2"     '----(3)R1C1形式で絶対参照
'    Range("C1").FormulaR1C1 = "=RC[-2]+RC[-1]" '----(4)R1C1形式で相対参照

    MsgBox "A1形式:" & Range("C1").Formula & vbCrLf & _
           "R1C1形式:" & Range("C1").FormulaR1C1
End Sub

文字列から日付(Date型)への変換

①yyyy/mm/dd形式はそのままCDate関数で変換する

Sub StringToDate1()
    Dim s   As String
    Dim dt  As Date
    
    s = "2018/03/29"
    
    dt = CDate(s)
End Sub

②yyyymmdd形式はyyyy/mm/ddにしてからCDate関数で変換する

Sub StringToDate1()
    Dim s   As String
    Dim dt  As Date
    
    s = "20180329"
    
    dt = CDate(Format(s, "####/##/##"))
    '// こちらでもよい
'   dt = CDate(Mid(s, 1, 4) & "/" & Mid(s, 5, 2) & "/" & Mid(s, 7, 2))
End Sub

 

Excel VBA マクロの DateAdd 関数から日付や時間を計算する方法

DateAdd 関数は、日時に指定した日付や時間を加算して返します。

DateAdd("d", 7, Date) のようにして、1 週間後の日付を取得できます。

DateAdd("h", -10, Time) のようにして、10 分前の時刻を取得できます。

DateAdd(単位, 加算時間, 日時)
日時単位加算時間を計算した結果を取得します。

引数「単位」 引数「加算時間」の単位を表す文字を指定します。
引数「加算時間」 引数「日時」に加算する時間を数値で指定します。
引数「日時」 元になる日時を指定します。
戻り値の型 日付型 (Date)

引数「単位」

単位の文字 説明
yyyy
m
d
h
n
s
q 四半期
y 通年での日数
w 平日
ww

 

別シートの行を削除する

Worksheets("Sheet2").Rows(1).Delete

 

経過時間を計測

Public Sub WatchTime
    Dim t As Double
    t = Timer

    ' 時間のかかる処理

    Debug.Print(Timer - t) ' 1.23 などの秒数
End Sub