マクロ

【VBA】PC名の取得

PC名(コンピューター名)の取得方法のサンプルコードを紹介します!

サンプルコード

Sub Example1()
    Dim pc As String
    pc = Environ("COMPUTERNAME")
    MsgBox pc
End Sub

実行結果

【VBA】エラー「インデックスが有効範囲にありません」の解決方法

エラーメッセージ「実行時エラー ‘9’: インデックスが有効範囲にありません」の原因と解決方法を紹介します!

原因:シート名の設定が誤っている

存在しないシート名orシート名が間違っているか、シートのインデックスが無効な範囲外にアクセスしようとしたときに発生します。

Sub Example1()
    Dim ws As Worksheet
    
    '存在しないシート名を設定
    Set ws = ThisWorkbook.Sheets("Sheet2")
    
    'インデックスが無効な範囲外
    Set ws = ThisWorkbook.Sheets(2)
    
End Sub

解決策

シート名、インデックスを正しい値に修正する。

Sub Example1()
    Dim ws As Worksheet
    
    '存在するシート名を設定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    'インデックスが有効な範囲
    Set ws = ThisWorkbook.Sheets(1)
    
End Sub

【VBA】最終行の取得方法

いくつか方法はありますが、今回紹介するのは途中で空白セルがあっても最終行を取得できる方法です。

対象列のデータがある最終行を取得

A列の最下行を取得します。

Sub GetLastRow()
    Dim lastRow As Long
    ' A列の最終行を取得
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox lastRow
End Sub

実行結果

【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

実行結果

【UiPath】Excelマクロに引数を渡す方法

UiPathからExcelマクロに引数を渡す方法を説明します。

UiPathで作成した文字列の変数を、Excelマクロに渡しメッセージボックスに表示します。

Excelマクロ設定

String型の引数を1つ受け取り、その引数をメッセージボックスに表示するマクロを作成します。

<ファイル名> :UipathTest.xlsm
<マクロ名>  :test
<引数>    :uipathMsg

VBA(サンプルコード)
Sub test(ByVal uipathMsg As String)
  MsgBox uipathMsg
End Sub

UiPath Studio設定

メッセージの設定

マクロで表示するメッセージを変数に設定します。

Excel application scope

「Excel application scope」にExcelマクロのファイルパスを指定します。

Execute macro

「Excel application scope」内に「Execute macro」をドラッグ&ドロップします。
「Execute macro」のプロパティ[Macro Name]にマクロ名(引数)を入力します。

※ダブルクォーテーションの数に注意!!

プロパティは[Macro Name]のみ設定です。

UiPathの設定は以上です。

実行結果