はじめに
この投稿は、RPAツールのUiPathで、Excelの印刷の向き(縦横)を変更する方法についての投稿です。
「Excel操作を.NETのコードでやってみよう」シリーズです。他の投稿はこちら。
印刷の向き(縦横)とは
「ファイル」メニューの「印刷」で指定するプリントアウト時の用紙の方向です。
ブックを新規作成した時の初期状態は「縦」なので、UiPathで横印刷をしたい場合に操作が面倒です。
2021年4月現在では、UiPath標準では「印刷向きの変更」はできませんが、
- 「コードを呼び出し(InvokeCode)」アクティビティで実行
- 「VBA を呼び出し (Invoke VBA)」アクティビティで実行
のいずれかで実現できます。
.NETで、印刷の向き(縦横)を変更
以下はVB.NETのコードです。実行すると「印刷の向き(縦横)」が変更されます。
UiPathの「コードを呼び出し(InvokeCode)」アクティビティに指定して実行できます。
'// 対象エクセルファイルの情報
Dim filePath As String = "C:\temp\Book1.xlsx"
Dim sheetName As String = "sheet1"
'// 処理開始
Dim ap As New Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook = ap.Workbooks.Open(filePath)
Try
'// シートループ
For Each ws As Microsoft.Office.Interop.Excel.Worksheet In wb.Sheets
If ws.Name.ToUpper() = sheetName.ToUpper() Then
'// 向きを変更
ws.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape '// 横向き
'ws.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlPortrait '// 縦向き
End If
Next
'// 保存・終了
wb.Save
wb.Close
Catch ex As Exception
Console.writeLine(ex.ToString)
Throw(ex)
Finally
If Not(wb Is Nothing) Then wb = Nothing
ap = Nothing
End Try
「向きを変更」している箇所のコードを変えれば、印刷設定の他の項目も編集可能です。
例えば、以下のように設定できるはず。です。
ws.PageSetup.PrintArea = "A:D" '// 印刷範囲の設定
ws.PageSetup.Zoom = False '// 倍率をクリア
ws.PageSetup.FitToPagesWide = 1 '// 横方向に1ページに収める
ws.PageSetup.FitToPagesTall = 1 '// 縦方向に1ページに収める
ws.PageSetup.CenterHorizontally = True '// 水平方向に中央配置
ws.PageSetup.PrintTitleRows = "$1:$2" '// 行タイトルを1~2行目に指定
ws.PageSetup.PrintTitleColumns = "$A:$A" '// 列タイトルをA列に指定
指定できる項目はこちら(英語)
呼び出し可能なxamlファイルにしたものを用意しました。以下からダウンロードできます。
終わりに
UiPathで「Excelの印刷設定を変更したい」場合に、役に立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。
閲覧ありがとうございました。