VBA

【VBA】数値を文字列に変換する方法

数値を文字列に変換する方法を紹介します。

サンプルコード

Sub Example1()
    Dim text As String
    text = CStr(123)
    MsgBox text
End Sub

実行結果

CStrとStrの違い

Str(数値)でも文字列に変換できますが、正の数値の場合、先頭に空白文字が追加されるので使い勝手はCStrが良いと思ます。

比較コード

Sub Example1()
    Debug.Print Str(123)
    Debug.Print CStr(123)
End Sub

実行結果

【VBA】マクロファイルのパスを取得する方法

ブックのパスを取得する方法を紹介します。

フォルダパス

Sub Example1()
    Dim path As String
    path = ThisWorkbook.path
    MsgBox path
End Sub

実行結果

フルパス

Sub Example1()
    Dim path As String
    path = ThisWorkbook.FullName
    MsgBox path
End Sub

実行結果

【VBA】ログインユーザー名の取得

ログインユーザー名の取得方法のサンプルコードを紹介します!

サンプルコード

Sub Example1()
    Dim user As String
    user = Environ("USERNAME")
    MsgBox user
End Sub

実行結果

【VBA】エラー「型が一致しません」の解決方法

エラーメッセージ「実行時エラー ’13’: 型が一致しません」の原因と解決方法を紹介します!

原因

異なるデータ型の値を代入している。

下記の例だとLong型(数値)にString型(文字列)を代入している。

Sub Example1()
    Dim age As Long
    age = "30歳"
End Sub

解決策

適切なデータ型を代入する。

Sub Example1()
    Dim age As Long
    age = 30
End Sub

【VBA】エラー「オブジェクト変数またはWithブロック変数が設定されていません」の解決方法

エラーメッセージ「実行時エラー ’91’: オブジェクト変数またはWithブロック変数が設定されていません」の原因と解決方法を紹介します!

原因①

Setステートメントがない

Sub Example1()
    Dim rg As Range
    rg = Range("A1:C100")
End Sub

解決策①

Setステートメントを使用し代入

Sub Example1()
    Dim rg As Range
    Set rg = Range("A1:C100")
End Sub

原因②

対象のオブジェクトが空

Sub Example1()
    Dim rg As Range
    Set rg = Nothing
    rg.Clear
End Sub

解決策②

空のオブジェクトは処理しない

Sub Example1()
    Dim rg As Range
    Set rg = Nothing
End Sub

【VBA】エラー「オーバーフローしました」の解決方法

エラーメッセージ「実行時エラー ‘6’: オーバーフロー」の原因と解決方法を紹介します!

原因

Integer型の変数に-32,768~32,767の範囲を超えた値を設定している。

Sub Example1()
    Dim age As Integer
    age = 999999
End Sub

解決策

Long型に型を変更する。

Sub Example1()
    Dim age As Long
    age = 999999
End Sub

【VBA】エラー「変数が定義されていない」の解決方法

エラーメッセージ「コンパイルエラー: 変数が定義されていません」の原因と解決方法を紹介します!

原因

変数を宣言をしていない。

Sub Example1()
    age = 30
End Sub

解決策

変数を代入する前にDimを使って宣言する。

Sub Example1()
    Dim age As Long
    age = 30
End Sub