とにかく動かすPAD − VBScriptでExcelを操作する方法

はじめに

PAD(Power Automate Desktop)にはExcel操作用のアクションが多く用意されていますが、正直、物足りません。
特に書式に関するアクションがありません。
一方、【VBScriptの実行】というアクションがあります。
これを使うとコードを書くことでExcel操作が可能です。
しかもコードはVBAとほとんど同じです。生成AIに書いてもらうこともできます。

セル範囲に罫線を設定する

【変数の設定】
変数:ExcelPath
値:(エクセルファイルのフルパス)

【変数の設定】
変数:SheetName
値:(シート名)

【変数の設定】
変数:Range
値:(セル範囲)※「A1:E4」のように。

【VBScriptの実行】
実行するVBScript:

Set ThisWorkbook = GetObject("%ExcelPath%")
With ThisWorkbook.Worksheets("%SheetName%").Range("%Range%")
    .Borders.LineStyle = 1
End With

ポイントは「Set ThisWorkbook = GetObject()」のところです。
これを使い、引数にフルパスを指定すると、既に開いているExcelを掴んで操作できます。
つまり通常のアクションを使ってエクセルを操作し、面倒なところだけを【VBScriptの実行】で操作すればよいのです。

罫線の種類、太さ、色を設定する

罫線
種類 XlLineStyle 1:実線、-4115:破線、-4118:点線、4:一点鎖線、-4119:2本線
https://learn.microsoft.com/ja-jp/office/vba/api/excel.xllinestyle
太さ XlBorderWeight 1:細線、2:極細、-4138:普通、4:太線
https://learn.microsoft.com/ja-jp/office/vba/api/excel.xlborderweight
色 XlColorIndex 1:black,2:white,3:red,4:lime,5:blue,6:yellow,7:fuchsia,8:aqua

【変数の設定】
変数:XlLineStyle
値:(線の種類の値)

【変数の設定】
変数:XlBorderWeight
値:(太さの値)

【変数の設定】
変数:XlColorIndex
値:(色の値)

【VBScriptの実行】
実行するVBScript:

Set ThisWorkbook = GetObject("%ExcelPath%")
With ThisWorkbook.Worksheets("%SheetName%").Range("%Range%")
    .Borders.LineStyle = %XlLineStyle%
    .Borders.Weight = %XlBorderWeight%
    .Borders.ColorIndex = %XlColorIndex%
End With

セル範囲の文字を太字にする

【VBScriptの実行】
実行するVBScript:

Set ThisWorkbook = GetObject("%ExcelPath%")
With ThisWorkbook.Worksheets("%SheetName%").Range("%Range%")
    .Font.Bold=True
End With

セル範囲の書式を設定する

【VBScriptの実行】
実行するVBScript:

Set ThisWorkbook = GetObject("%ExcelPath%")
With ThisWorkbook.Worksheets("%SheetName%").Range("%Range%")
    .Font.Name = "Meiryo UI"
    .Font.Size = 24
    .Font.Bold = True
    .Font.Color = RGB(255, 0, 0) ' 赤
   .Interior.Color = RGB(255, 255, 0) ' 黄
   .HorizontalAlignment = -4108 ' 左右中央揃え
   .VerticalAlignment = -4108 ' 上下中央揃え
End With

シートの表示・非表示

シートの表示

【VBScriptの実行】
実行するVBScript:
Set ThisWorkbook = GetObject(“%ExcelPath%”)
ThisWorkbook.Worksheets(“%SheetName%”).Visible = True

シートの非表示

Set ThisWorkbook = GetObject(“%ExcelPath%”)
ThisWorkbook.Worksheets(“%SheetName%”).Visible = False

行と列の表示・非表示

行の表示

【VBScriptの実行】
実行するVBScript:
Set ThisWorkbook = GetObject(“%ExcelPath%”)
With ThisWorkbook.Worksheets(“%SheetName%”).Range(“%Range%”)
.EntireRow.Hidden = False
End With

行の非表示

【VBScriptの実行】
実行するVBScript:
Set ThisWorkbook = GetObject(“%ExcelPath%”)
With ThisWorkbook.Worksheets(“%SheetName%”).Range(“%Range%”)
.EntireRow.Hidden = True
End With

列の表示

【VBScriptの実行】
実行するVBScript:
Set ThisWorkbook = GetObject(“%ExcelPath%”)
With ThisWorkbook.Worksheets(“%SheetName%”).Range(“%Range%”)
.EntireColumn.Hidden = False
End With

列の非表示

【VBScriptの実行】
実行するVBScript:
Set ThisWorkbook = GetObject(“%ExcelPath%”)
With ThisWorkbook.Worksheets(“%SheetName%”).Range(“%Range%”)
.EntireColumn.Hidden = True
End With

コメント

タイトルとURLをコピーしました