UiPath Excelに罫線を設定する方法

2020年2月20日

この記事を書いている時点ではUiPathでExcelのシートに

任意を罫線を引くアクティビティは存在しません。

この記事では任意の罫線を設定する方法を紹介します。

罫線を引く方法

UiPathには罫線を引くアクティビティがないため

VBAの呼び出し」を使用して

罫線を引くマクロを実行します。

マクロは用意してあるので

こちらをダウンロードし

Zipを解凍してください。

手順

言語にVBを選んでいます。

空のプロセス

アクティビティの設置

まず「Excel アプリケーション スコープ」を

デザイナーパネル中に設置し、

その中に「VBAの呼び出し」を設置します。

アクティビティの設定

Excel アプリケーション スコープのプロパティ設定

プロパティ設定値
マクロを設定EnableAll
読み込み専用チェックしない
ブックのパス罫線を設定するブックのパス
Excelアプリケーションスコープのプロパティ設定
Excelアプリケーションスコープのプロパティ設定

VBAの呼び出しのプロパティ設定

 「VBAの呼び出し」のプロパティ

コードファイルのパス

ダウンロードしたbasファイルを指定します。

エントリメソッド名

引く罫線によって設定値が変わります。

文字列のは"で囲んで設定します。

エントリメソッド名動作
Border_Top上端に罫線を設定
Border_Bottom下端に罫線を設定
Border_Left左端に罫線を設定
Border_Right右端に罫線を設定
Border_DiagonalDown右下がり斜線を設定
Border_DiagonalUp右上がり斜線を設定
Border_Lattice格子状に罫線を設定
Border_OuterFrame外枠を設定
Border_Delete罫線を削除

エントリメソッドのパラメータ

エントリメソッドが設定か削除かで

パラメータの構成が変わります。

パラメータはコレクションで指定します。

配列・コレクションの構文作成ツール

パラメータデータ型削除時備考
シート名文字列必要
セルアドレス文字列必要
罫線の種類数値不要1~13の間で設定
罫線の色(赤)数値不要0~255の間で設定
罫線の色(緑)数値不要0~255の間で設定
罫線の色(青)数値不要0~255の間で設定

罫線の種類の数値と罫線の対応は下記のとおりです。

 罫線の種類

実行例

UiPathを実行する場合は対象のブックを

閉じておく必要があります。

罫線を引く場合

罫線を引く場合の実行
罫線を引く場合の実行

パラメータはコレクションで指定します。

配列・コレクションの構文作成ツール

パラメータのサンプル
{シート名,セルアドレス,罫線の種類,,,}
{"Sheet2","B2:E6",12,255,122,0}

上記のように設定するとSheet2のB2~E6に

格子状にオレンジ色の太線を引きます。

罫線を引く実行結果
罫線を引く実行結果

罫線を削除する場合

罫線の色と種類を設定せずに実行します。

パラメータはコレクションで指定します。

配列・コレクションの構文作成ツール

罫線の削除の場合の設定例
罫線の削除の場合の設定例
パラメータのサンプル
{シート名,セルアドレス}
{"Sheet2","B2:E6"}
罫線の削除の場合の実行結果
罫線の削除の場合の実行結果

セキュリティエラーが発生する場合

UiPathでマクロを実行するには

セキュリティの設定も影響します。

VBAの呼び出し」 で説明しているので

セキュリティ関連のエラーが出る場合は

そちらの参照をお願いします。

VBAのソースコード(参考)

UipathExcelBorder.basの内容はこのようになっています。

Public Sub Border_Top(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeTop, RGB(red, green, blue))
End Sub

Public Sub Border_Bottom(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeBottom, RGB(red, green, blue))
End Sub

Public Sub Border_Left(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeLeft, RGB(red, green, blue))
End Sub

Public Sub Border_Right(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeRight, RGB(red, green, blue))
End Sub

Public Sub Border_DiagonalDown(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlDiagonalDown, RGB(red, green, blue))
End Sub

Public Sub Border_DiagonalUp(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlDiagonalUp, RGB(red, green, blue))
End Sub

Public Sub Border_Lattice(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeTop, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeBottom, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeLeft, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeRight, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlInsideHorizontal, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlInsideVertical, RGB(red, green, blue))
End Sub

Public Sub Border_OuterFrame(sheetName As String, cellAddress As String, borderType As Integer, red As Integer, green As Integer, blue As Integer)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeTop, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeBottom, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeLeft, RGB(red, green, blue))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), borderType,xlEdgeRight, RGB(red, green, blue))
End Sub

Public Sub Border_Delete(sheetName As String, cellAddress As String)
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlEdgeTop, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlEdgeBottom, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlEdgeLeft, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlEdgeRight, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlInsideHorizontal, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlInsideVertical, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlDiagonalDown, RGB(0, 0, 0))
    Call BorderWrite(Worksheets(sheetName).Range(cellAddress), 0, xlDiagonalUp, RGB(0, 0, 0))
End Sub

Private Sub BorderWrite(cellRange As Range, borderType As Integer, borderPosition As Integer, borderColor As Long)

    Select Case borderType
    Case 0
        With cellRange.Borders(borderPosition)
        .LineStyle = xlLineStyleNone
        End With
    Case 1
        With cellRange.Borders(borderPosition)
        .LineStyle = xlContinuous
        .Weight = xlHairline
        .Color = borderColor
        End With
    Case 2
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDot
        .Weight = xlThin
        .Color = borderColor
        End With
    Case 3
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDashDotDot
        .Weight = xlThin
        .Color = borderColor
        End With
    Case 4
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDashDot
        .Weight = xlThin
        .Color = borderColor
        End With
    Case 5
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDash
        .Weight = xlThin
        .Color = borderColor
        End With
    Case 6
        With cellRange.Borders(borderPosition)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .Color = borderColor
        End With
    Case 7
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDashDotDot
        .Weight = xlMedium
        .Color = borderColor
        End With
    Case 8
        With cellRange.Borders(borderPosition)
        .LineStyle = xlSlantDashDot
        .Weight = xlMedium
        .Color = borderColor
        End With
    Case 9
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDashDot
        .Weight = xlMedium
        .Color = borderColor
        End With
    Case 10
        With cellRange.Borders(borderPosition)
        .LineStyle = xlDash
        .Weight = xlMedium
        .Color = borderColor
        End With
    Case 11
        With cellRange.Borders(borderPosition)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .Color = borderColor
        End With
    Case 12
        With cellRange.Borders(borderPosition)
        .LineStyle = xlContinuous
        .Weight = xlThick
        .Color = borderColor
        End With
    Case 13
         With cellRange.Borders(borderPosition)
        .LineStyle = xlDouble
        .Weight = xlThick
        .Color = borderColor
        End With
    End Select
End Sub

関連記事

UiPath Excel関連アクティビティの記事一覧