UiPath Excelに罫線を設定する方法
この記事を書いている時点ではUiPathでExcelのシートに
任意を罫線を引くアクティビティは存在しません。
この記事では任意の罫線を設定する方法を紹介します。
目次
罫線を引く方法
UiPathには罫線を引くアクティビティがないため
「VBAの呼び出し」を使用して
罫線を引くマクロを実行します。
マクロは用意してあるので
こちらをダウンロードし
Zipを解凍してください。
手順
言語にVBを選んでいます。

アクティビティの設置
まず「Excel アプリケーション スコープ」を
デザイナーパネル中に設置し、
その中に「VBAの呼び出し」を設置します。

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

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