仕事に差がつく!阿久津良和「Office 365のスゴ技」 第48回
月報をExcelで自動生成する手順
Excelの単純作業はPowerShellで自動化しよう
2018年10月09日 12時30分更新
本連載は、マイクロソフトの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)"」などの計算式でもよい。
似たような操作はもちろん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
このようにスクリプトを使えば、ある程度の自動化は可能である。今回は「自動化できる」ことを読者諸氏にお伝えするのが主旨のため、自動化の内容は無価値だが、ご自身の業務に照らし合わせて、スクリプトの操作を変更すれば、忙しい日々の業務負担をわずかに軽減できるだろう。

この連載の記事
- 第100回 Office 365の更新チャネル名が“また”変更へ
- 第99回 今さら聞けないMicrosoft Teamsの便利な機能
- 第98回 進化するMicrosoft Teams――2020年4月に追加された新機能を紹介
- 第97回 SlackからTeamsを呼び出すアドオン、Teamsのカスタム背景画像を試す
- 第96回 WSLでWord文書ファイルをテキスト化する
- 第95回 中堅中小企業向けOffice 365もMicrosoft 365へ
- 第94回 共有メールボックスでOutlookのメール容量を2倍に
- 第93回 見送られたMicrosoft SearchでのBingの強制利用
- 第92回 外部との仕事がはかどるOneDrive for Businessの「ファイル要求」
- 第91回 Office 365でシンプルなタイトルバーを復活させる
- 第90回 Excelの新自動化ソリューション「Office Scripts」プレビュー版が登場
- この連載の一覧へ