2015-06-26

PowerShellでExcelを操作する - ヘッダー、フッターの設定編 -

PowerShellでは、Excelファイル(エクセル 拡張子xls、xlsx、xlsm等)を操作することもできます。

Excelファイルは、Officeソフトの中でも特に使用頻度が高く、業務で毎日使用しているという人も少なくないと思います。

そんな毎日使用するものだからこそ、定型業務をPowerShellで自動化していきましょう!!



Excel操作 10回目の今回は「PowerShellでExcelを操作する - ヘッダー、フッターの設定編 -」です。



<前準備>

・C:\TESTフォルダ内に、AAA.xlsxのExcelファイルを作成しておいてください。
 AAA.xlsxの内容は空のままでOKです。



それでは早速、例文を記述していきます。



---------ここから-------------------------------------------------------------------------------------

# Excel操作 罫線の操作編


# Excelを操作する為の宣言
$excel = New-Object -ComObject Excel.Application

# 可視化しない
$excel.Visible = $false

# 既存のワークブックを開く場合
$book = $excel.Workbooks.Open("C:\TEST\AAA.xlsx")

# ワークシートを番号で指定し、接続する
$sheet = $excel.Worksheets.Item(1)

# 指定したセルに文字列を入力
$sheet.Cells.Item(2,3) = "PowerShellで作成"

# ヘッダー(中央)の設定
$sheet.pageSetup.CenterHeader = "PowerShellで設定しました"

# ヘッダー(右)の設定
$sheet.pageSetup.RightHeader = "作成日: &D &T"

# フッター(中央)の設定
$sheet.pageSetup.CenterFooter = "ページ &P of &N"

# 上書き保存
$Book.Save()

# Excelを閉じる
$excel.Quit()

# プロセスを解放する
$excel = $null
[GC]::Collect()

---------ここまで-------------------------------------------------------------------------------------

上記内容をコピーし、PowerShell ISEに貼り付けて、実行してみてください。

処理完了後、C:\TESTフォルダ内のAAA.xlsxを開き、印刷プレビュー画面を表示させると、画像のように設定されていると思います。


ヘッダー部分

フッター部分

それでは1行ずつ解説していきます。
(コマンドが記述してある部分だけを数えて1行目、2行目…としています)



<解説>

◆1行目~5行目
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$book = $excel.Workbooks.Open("C:\TEST\AAA.xlsx")
$sheet = $excel.Worksheets.Item(1)
$sheet.Cells.Item(2,3) = "PowerShellで作成"

この5行については省略いたします。
内容がわからない場合は【PowerShellでExcelを操作する - 基礎編 -】をご覧ください。


◆6行目~8行目
$sheet.pageSetup.CenterHeader = "PowerShellで設定しました"
$sheet.pageSetup.RightHeader = "作成日: &D &T"
$sheet.pageSetup.CenterFooter = "ページ &P of &N"

この3行が今回の主な部分になります。
ヘッダー、フッターを設定するには、PageSetupオブジェクトを使用し、それぞれの箇所に応じたプロパティを指定します。

 ヘッダー 左    … LeftHeader
 ヘッダー中央 … CenterHeader
 ヘッダー 右    … RightHeader

 フッター 左   … LeftFooter
 フッター中央 … CenterFooter
 フッター 右   … RightFooter

プロパティは他にもありますので、詳しくはこちらをご覧ください。
Microsoft PageSetupプロパティ

6行目のように、ヘッダー、フッターには直接文字列を入力することもできますが、7行目・8行目のようにExcelの書式設定コードを使用することも可能です。

<書式設定コード>
&D 現在の日付を出力
&T 現在の時刻を出力
&F ドキュメントの名前を出力
&A シート名を出力
&P ページ番号を出力
&P+ 指定した数値をページ番号に加えた値を出力
&P- 指定した数値をページ番号から引いた値を出力
&& アンパサンド (&) を 1 つ出力
&N ドキュメントに含まれるページの総数を出力
&Z ファイル パスを出力
&G 画像を挿入


◆9行目~12行目
$book.Save()
$excel.Quit()
$excel = $null
[GC]::Collect()

この4行については割愛させていただきます。
内容がわからない場合は【PowerShellでExcelを操作する - 基礎編 -】をご覧ください。


解説は以上です。


10回にわたって、PowerShellからExcelを操作する方法を掲載してまいりました。
私はこの方法を知ってから、日報の作成や指示書の作成などを自動化しまくりました。

これまでの投稿が、少しでも皆様のお力になっていれば幸いです。

さて、次回はExcelから離れて「ユーザーフォームを作る - 基礎編 -」を投稿致します。

=======================================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=======================================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!           
=======================================================================
スポンサーリンク


0 件のコメント:

コメントを投稿

疑問・質問・リクエスト お気軽にどうぞ (^O^)/