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