このページの本文へ

仕事に差がつく!阿久津良和「Office 365のスゴ技」 第48回

月報をExcelで自動生成する手順

Excelの単純作業はPowerShellで自動化しよう

2018年10月09日 12時30分更新

文● 阿久津良和 編集 ● 羽野/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

本連載は、マイクロソフトのSaaS型デスクトップ&Webアプリケーション「Office 365」について、仕事の生産性を高める便利機能や新機能、チームコラボレーションを促進する使い方などのTipsを紹介する。

 Office 365を使いこなして仕事を早く終わらせたい皆様にお届けする本連載。今回はWindows PowerShellによるExcelファイルの自動生成に注目する。

Windows PowerShellの基本操作

 日常業務を振り返ると、単純作業に貴重な時間を消費していないだろうか。例えば月報をExcelにまとめるのであれば、ワークシートファイルに勤務時間を埋め、業務内容の要旨を記述するだろう。その際の手作業を減らすため、社内規定のテンプレートを使うことが多い。

 これらの作業を自動化できればどれだけ便利だろうか。その手助けとなるのが、PowerShellである。.NET Frameworkを基盤としてスクリプト記述できるPowerShellを使えば、簡単な作業を自動化できるのだ。まずは下図のスクリプトをご覧頂きたい。


$excel = New-Object -ComObject Excel.Application
$excel.Visible = $true
$book = $excel.Workbooks.Add()
$book.Sheets(1).Name = "1月"
$sheet = $book.Sheets("1月")
$sheet.Cells.Item(1, 1) = "日付"
$sheet.Cells.Item(1, 2) = "出社"
$sheet.Cells.Item(1, 3) = "退社"
$sheet.Cells.Item(1, 4) = "要旨"
$book.SaveAs("E:\OneDrive - Cactus\Work\201809-ASCII-Office365_47\test.xlsx")
$excel.Quit()
$excel = $null

 1~2行目でExcelの起動と表示を行い、3行目は新たなワークブックの作成を意味する。4行目で最初のシート名を「1月」に変更して、その後の処理をスムーズに進めるため5行目で変数sheelに代入を行った。6~9行目はご覧のとおり、A1からD1までに文字列を入力。

 10行目は決め打ちした場所にExcelファイルを保存して、11~12行目でExcelの終了とメモリーを解放するためのガーベージコレクションを行った。このスクリプトを実行すると下図に示したように、10行目で指定した場所にExcelファイルを生成できる。なお、セルに挿入できるのは文字列に限らず、「"=SUM(A1:B1)"」などの計算式でもよい。

1.スクリプトを実行するには、ファイルを右クリック→<PowerShellで実行>をクリックする

2.こちらが上記のスクリプトを実行で生成されたExcelファイル

 似たような操作はもちろんWordやPowerPointでも可能だ。Wordの場合は最初のオブジェクト名を「Word.Application」に変更し、「Content.Text」で文字列を入力する。PowerPointの場合は「PowerPoint.Application」に置き換えて各種操作を挿入すればよい。なお、実際に試す場合、ファイルのパス名などはご自身の環境に置き換えてほしい。


$word = New-Object -ComObject Word.Application
$word.Visible = $true
$doc = $word.Documents.Add()
$doc.Content.Text = "foo, bar"
$doc.SaveAs("E:\OneDrive - Cactus\Work\201809-ASCII-Office365_47\test.docx")
$word.Quit()
$word = $null

3.上記のスクリプトを実行すると、指定文字列を挿入したWordファイルを生成できる

 このようにスクリプトを使えば、ある程度の自動化は可能である。今回は「自動化できる」ことを読者諸氏にお伝えするのが主旨のため、自動化の内容は無価値だが、ご自身の業務に照らし合わせて、スクリプトの操作を変更すれば、忙しい日々の業務負担をわずかに軽減できるだろう。

■関連サイト

カテゴリートップへ

この連載の記事
ピックアップ