Excel VBAでWordからPowerShellコマンドを実行する方法

Excel VBAを使用してWord文書からPowerShellコマンドを実行することは、業務自動化の強力なツールとなります。この記事では、Excel VBAを使用してWordからPowerShellコマンドを実行する手順、関連するコード、その詳細な解説、そして応用例を3つ紹介します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な手順

Excel VBAでWord文書からPowerShellコマンドを実行するには、以下の手順を実行します。

1. Excel VBAでWordオブジェクトを開きます。
2. Word文書の特定の部分や全体を読み取ります。
3. その情報を使用してPowerShellコマンドを組み立てます。
4. コマンドを実行します。

基本コード

以下は、Excel VBAを使用してWord文書からPowerShellコマンドを実行するための基本コードです。


Sub RunPowerShellFromWord()

    Dim WordApp As Object
    Dim WordDoc As Object
    Dim PowerShellCommand As String
    Dim shell As Object
    
    ' Wordオブジェクトを開く
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open("C:\path\to\your\document.docx")

    ' Word文書から情報を読み取る(例: タイトルを取得)
    Dim docTitle As String
    docTitle = WordDoc.Paragraphs(1).Range.Text
    
    ' PowerShellコマンドを組み立てる
    PowerShellCommand = "Your PowerShell command here using " & docTitle

    ' PowerShellコマンドを実行
    Set shell = CreateObject("WScript.Shell")
    shell.Run "powershell.exe " & PowerShellCommand

    ' オブジェクトを閉じる
    WordDoc.Close
    WordApp.Quit
    Set WordDoc = Nothing
    Set WordApp = Nothing

End Sub

コードの詳細解説

上記のコードでは、以下の手順が行われています。

1. Wordアプリケーションと文書オブジェクトを作成します。
2. Word文書から情報を読み取ります。この例では、文書の最初の段落(通常、タイトル)を読み取っています。
3. PowerShellコマンドを組み立てます。この例では、読み取ったタイトルをPowerShellコマンドに使用しています。
4. PowerShellコマンドを実行します。
5. 使用したオブジェクトをクリーンアップします。

応用例1: Word文書のテキストに基づいたファイルのリネーム

この例では、Word文書のテキストを使用して特定のファイルをリネームするPowerShellコマンドを実行します。


' ...
PowerShellCommand = "Rename-Item -Path C:\path\to\file.txt -NewName " & docTitle & ".txt"
' ...

応用例2: Word文書のテキストに基づいてフォルダを作成

この例では、Word文書のテキストを使用して新しいフォルダを作成するPowerShellコマンドを実行します。


' ...
PowerShellCommand = "New-Item -Path C:\path\to\parent\folder -Name " & docTitle & " -ItemType Directory"
' ...

応用例3: Word文書のテキストを使用してファイルの内容を検索

この例では、Word文書のテキストを使用して特定のファイルの内容を検索するPowerShellコマンドを実行します。


' ...
PowerShellCommand = "Select-String -Path C:\path\to\file.txt -Pattern " & docTitle
' ...

まとめ

Excel VBAを使用してWord文書からPowerShellコマンドを実行する方法は、さまざまな業務自動化タスクを効率的に行うための強力な手段です。基本コードとその詳細な解説、および応用例を参考にして、あなたのニーズに合わせてカスタマイズしてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次