none
「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動している場合、起動しているプログラムをダイアログ表示する方法について RRS feed

  • 質問

  • 【環境】Windows 10 Enterprise 2016 LTSB,Office 2016 Professional Plus,CLaunch

    【状況】
     障害によりパソコンの交換が必要になった際に事前に以下の情報をエクスポート、パソコンの交換後に以下の情報をインポートするプログラムの作成を考えており、エクスポート、インポート時に「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動している場合、起動しているプログラムをダイアログ表示して、ユーザーにそのプログラムの終了を促したいと考えております。

     1.Word 2016・・・・・・リボンとクイックアクセスツールバー(Word.OfficeUI)
     2.Excel 2016・・・・・・リボンとクイックアクセスツールバー(Excel.OfficeUI) 
      3.PowerPoint 2016・・・リボンとクイックアクセスツールバー(PowerPoint.OfficeUI)
     4.Outlook 2016・・・・・リボンとクイックアクセスツールバー(olkexplorer.OfficeUI) 、送受信グループの設定(拡張子:srs)、ナビゲーションウインドウの設定(拡張子:xml)、印刷設定ファイル(OutlPrnt)、署名(拡張子:txt.rtf,htm)、ビュー
       5.Office2016・・・・・・辞書(CUSTOM.DIC)
       6.CLaunch・・・・・・・・設定ファイル(CLaunch.ini)、デザインファイル(Design.ini)
     
    【ご教示いただきたい点】

    「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動している場合、起動しているプログラムをダイアログ表示する方法についてご教示いただけますでしょうか。


    2019年8月11日 7:51

回答

  • Add-Type -Assembly System.Windows.Forms
    
    $excel      = Get-Process excel   | Where-Object {$_.Path -match ".*\\excel.exe$"}
    $word       = Get-Process winword | Where-Object {$_.Path -match ".*\\winword.exe$"}
    $powerpoint = Get-Process POWERPNT | Where-Object {$_.Path -match ".*\\POWERPNT.exe$"}
    $outlook    = Get-Process OUTLOOK | Where-Object {$_.Path -match ".*\\OUTLOOK.exe$"}
    $claunch    = Get-Process Claunch | Where-Object {$_.Path -match ".*\\CLaunch.exe$"}
    
    if($excel -ne $null){
        [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    if($word){
        [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    if($powerpoint){
        [System.Windows.Forms.MessageBox]::Show("PowerOiubtは起動されています")
    }
    if($outlook){
        [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    if($claunch){
        [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています")
    }

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2019年8月11日 10:21
  • 既に回答は付いていますが、別解を挙げてみます。

    $word = @(Get-Process -Name WINWORD -ErrorAction SilentlyContinue).Length -gt 0
    if($word)
    {
        Write-Host "WORDが起動しています。"
    }

    ErrorActionを指定することで、プロセスが存在しない場合のエラー表示を抑制しています。また、Get-Processコマンドレットは同名のプロセスが複数ある場合はすべて出力されるので、結果を@()演算子により配列化し、Lengthプロパティの値が0より大きいかどうかで、該当プロセスの存在をチェックしています。

    同様の処理を他のプロセスでも行うので、以下のように関数化すると便利かと思います。

    function Test-Process
    {
        param(
            [parameter(ValueFromPipeline = $true)]
            [string]
            $Name
        )
        process
        {
            @(Get-Process `
                -Name $Name `
                -ErrorAction SilentlyContinue
            ).Length -gt 0
        }
    }
    
    "WINWORD","EXCEL","POWERPNT","OUTLOOK","CLaunch" | 
        ForEach-Object {
            if(Test-Process -Name $_)
            {
                Write-Host "${_}が起動しています。"
            }
            else
            {
                Write-Host "${_}が起動していません。"
            }
        }

    2019年8月11日 17:39
    モデレータ
  • いまさらかもしれませんが・・・

    (Get-Process).Name -contains "WINWORD"
    (Get-Process).Name -contains "EXCEL"

    でもよいかと。
    起動していればTrueがかえってきます。

    2019年8月13日 1:20
  • 条件判定の部分のTrue、Falseを以下のように修正ください

    "True" → $True

    "False" → $False

    (Get-Process).Name -contains の戻り値はBoolenです。表示錠は"True"あるいは"False"と表示されますが、

    内部では$Trueあるいは$Falseのどちらかになります。

    2019年8月26日 0:51
  • $result = Get-Check-Process
    
        if ($result) {
            Exit
        }

    判定している個所を上記のように別変数(上記例では$result)に代入して判別してみてください。

    Get-Check-Process関数は呼び出されていますが、スコープが違うので変数に代入されていないのだと思います。

    2019年8月27日 0:34

すべての返信

  • Add-Type -Assembly System.Windows.Forms
    
    $excel      = Get-Process excel   | Where-Object {$_.Path -match ".*\\excel.exe$"}
    $word       = Get-Process winword | Where-Object {$_.Path -match ".*\\winword.exe$"}
    $powerpoint = Get-Process POWERPNT | Where-Object {$_.Path -match ".*\\POWERPNT.exe$"}
    $outlook    = Get-Process OUTLOOK | Where-Object {$_.Path -match ".*\\OUTLOOK.exe$"}
    $claunch    = Get-Process Claunch | Where-Object {$_.Path -match ".*\\CLaunch.exe$"}
    
    if($excel -ne $null){
        [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    if($word){
        [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    if($powerpoint){
        [System.Windows.Forms.MessageBox]::Show("PowerOiubtは起動されています")
    }
    if($outlook){
        [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    if($claunch){
        [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています")
    }

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2019年8月11日 10:21
  • ありがとうございます。

    ご教示いただきました方法で行うことができました。

    Add-Type -Assembly System.Windows.Forms
    
    $excel      = Get-Process EXCEL   | Where-Object {$_.Path -match ".*\\EXCEL.exe$"}
    $word       = Get-Process WINWORD | Where-Object {$_.Path -match ".*\\WINWORD.exe$"}
    $powerpoint = Get-Process POWERPNT | Where-Object {$_.Path -match ".*\\POWERPNT.exe$"}
    $outlook    = Get-Process OUTLOOK | Where-Object {$_.Path -match ".*\\OUTLOOK.exe$"}
    $claunch    = Get-Process Claunch | Where-Object {$_.Path -match ".*\\CLaunch.exe$"}
    
    if($excel -ne $null){
        [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    if($word){
        [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    if($powerpoint){
        [System.Windows.Forms.MessageBox]::Show("PowerPointは起動されています")
    }
    if($outlook){
        [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    if($claunch){
        [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています")
    }

    ダイアログの表示を行う前に、まずは、以下の方法で「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.EXE」の起動の有無を確認できるのではと思って試してみましたが、確認できませんでした。
    この方法では取得できないのですね。

    $Result1 = Get-Process -NAME WINWORD If ($Result1 -eq "WINWORD") { Write-Host "WORDが起動しています。" } Else { Write-Host "WORDが起動していません。" } $Result2 = Get-Process -NAME EXCEL If ($Result2 -eq "EXCEL") { Write-Host "EXCELが起動しています" } Else { Write-Host "EXCELが起動していません。" } $Result3 = Get-Process -NAME POWERPNT If ($Result3 -eq "POWERPNT") { Write-Host "POWERPOINTが起動しています。" } Else { Write-Host "POWERPOINTが起動していません。" }
    $Result4 = Get-Process -NAME OUTLOOK
    If ($Result4 -eq "OUTLOOK") {
       Write-Host "OUTLOOKが起動しています。"
    } Else {
      Write-Host "OUTLOOKが起動していません。"
    } $Result5 = Get-Process -NAME CLaunch If ($Result5 -eq "CLaunch") { Write-Host "CLaunchが起動しています。" } Else { Write-Host "CLaunchが起動していません。" }


    2019年8月11日 13:24
  • 既に回答は付いていますが、別解を挙げてみます。

    $word = @(Get-Process -Name WINWORD -ErrorAction SilentlyContinue).Length -gt 0
    if($word)
    {
        Write-Host "WORDが起動しています。"
    }

    ErrorActionを指定することで、プロセスが存在しない場合のエラー表示を抑制しています。また、Get-Processコマンドレットは同名のプロセスが複数ある場合はすべて出力されるので、結果を@()演算子により配列化し、Lengthプロパティの値が0より大きいかどうかで、該当プロセスの存在をチェックしています。

    同様の処理を他のプロセスでも行うので、以下のように関数化すると便利かと思います。

    function Test-Process
    {
        param(
            [parameter(ValueFromPipeline = $true)]
            [string]
            $Name
        )
        process
        {
            @(Get-Process `
                -Name $Name `
                -ErrorAction SilentlyContinue
            ).Length -gt 0
        }
    }
    
    "WINWORD","EXCEL","POWERPNT","OUTLOOK","CLaunch" | 
        ForEach-Object {
            if(Test-Process -Name $_)
            {
                Write-Host "${_}が起動しています。"
            }
            else
            {
                Write-Host "${_}が起動していません。"
            }
        }

    2019年8月11日 17:39
    モデレータ
  • ありがとうございます。

    ご教示いただきました方法で行うことができました。

    確かに関数化すると便利ですね。

    フォーム上にあるラジオボタン「インポート」または「エクスポート」にチェックを行い、「はい」ボタンを押した際に「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」のいずれか1つでも起動している場合、ダイアログボックスを表示してユーザーに終了を促し、「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動していない場合は、ダイアログボックスを表示せず、「インポート」または「エクスポート」処理を行うように考えています。

    ご教示いただきましたプログラムを修正させていただき、ダイアログ表示の確認も行うことができました。

    Add-Type -Assembly System.Windows.Forms
    function Test-Process
    {
        param(
            [parameter(ValueFromPipeline = $true)]
            [string]
            $Name
        )
        process
        {
            @(Get-Process `
                -Name $Name `
                -ErrorAction SilentlyContinue
            ).Length -gt 0
        }
    }
    
    "WINWORD","EXCEL","POWERPNT","OUTLOOK","CLaunch" | 
        ForEach-Object {
            if(Test-Process -Name $_)
            {
                  [System.Windows.Forms.MessageBox]::Show("${_}が起動していますので、終了してください。")
            }
       }


    2019年8月12日 10:00
  • いまさらかもしれませんが・・・

    (Get-Process).Name -contains "WINWORD"
    (Get-Process).Name -contains "EXCEL"

    でもよいかと。
    起動していればTrueがかえってきます。

    2019年8月13日 1:20
  • ありがとうございます。

    ご教示いただきました方法で行うことができました。

    Add-Type -Assembly System.Windows.Forms
    
    $excel = (Get-Process).Name -contains "EXCEL"
    if ($excel -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    
    $word = (Get-Process).Name -contains "WINWORD"
    if ($word -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    
    $powerpoint = (Get-Process).Name -contains "POWERPNT"
    if ($powerpoint -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("PowerPointは起動されています")
    }
    
    $outlook = (Get-Process).Name -contains "OUTLOOK"
    if ($outlook -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    
    $claunch = (Get-Process).Name -contains "CLaunch"
    if ($claunch -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています")
    }






    2019年8月13日 12:27
  • 取得する情報が追加になり、「MSACCESS.EXE」「OneNOTE.EXE」も起動している場合、起動しているプログラムをダイアログ表示して、ユーザーにそのプログラムの終了を促すように変更しました。

    1.Word 2016・・・・・・リボンとクイックアクセスツールバー(Word.OfficeUI)
    2.Excel 2016・・・・・・リボンとクイックアクセスツールバー(Excel.OfficeUI)  
    3.PowerPoint 2016・・・リボンとクイックアクセスツールバー(PowerPoint.OfficeUI)
    4.Outlook 2016・・・・・リボンとクイックアクセスツールバー(olkexplorer.OfficeUI) 、送受信グループの設定(拡張子:srs)、ナビゲーションウインドウの設定(拡張子:xml)、印刷設定ファイル(OutlPrnt)、署名(拡張子:txt.rtf,htm)、ビュー
    5.Access 2016・・・・・・リボンとクイックアクセスツールバー(Access.OfficeUI)
    6.OneNote 2016・・・・・・リボンとクイックアクセスツールバー(OneNote.OfficeUI)
    7.Office2016・・・・・・辞書(CUSTOM.DIC)
    8.CLaunch・・・・・・・・設定ファイル(CLaunch.ini)、デザインファイル(Design.ini)

    Add-Type -Assembly System.Windows.Forms
    
    $excel      = Get-Process EXCEL   | Where-Object {$_.Path -match ".*\\EXCEL.exe$"}
    $word       = Get-Process WINWORD | Where-Object {$_.Path -match ".*\\WINWORD.exe$"}
    $powerpoint = Get-Process POWERPNT | Where-Object {$_.Path -match ".*\\POWERPNT.exe$"}
    $outlook    = Get-Process OUTLOOK | Where-Object {$_.Path -match ".*\\OUTLOOK.exe$"}
    $access     = Get-Process MSACCESS | Where-Object {$_.Path -match ".*\\MSACCESS.exe$"}
    $onenote    = Get-Process ONENOTE | Where-Object {$_.Path -match ".*\\ONENOTE.exe$"}
    $claunch    = Get-Process Claunch | Where-Object {$_.Path -match ".*\\CLaunch.exe$"}
    
    if($excel -ne $null){
        [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    if($word){
        [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    if($powerpoint){
        [System.Windows.Forms.MessageBox]::Show("PowerPointは起動されています")
    }
    if($outlook){
        [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    if($access){
        [System.Windows.Forms.MessageBox]::Show("Accessは起動されています")
    }
    if($onenote){
        [System.Windows.Forms.MessageBox]::Show("OneNoteは起動されています")
    }
    if($claunch){
        [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています")
    }
    Add-Type -Assembly System.Windows.Forms
    function Test-Process
    {
        param(
            [parameter(ValueFromPipeline = $true)]
            [string]
            $Name
        )
        process
        {
            @(Get-Process `
                -Name $Name `
                -ErrorAction SilentlyContinue
            ).Length -gt 0
        }
    }
    
    "WINWORD","EXCEL","POWERPNT","OUTLOOK","MSACCESS","ONENOTE","CLaunch" | 
        ForEach-Object {
            if(Test-Process -Name $_)
            {
                  [System.Windows.Forms.MessageBox]::Show("${_}が起動していますので、終了してください。")
            }
       }
    Add-Type -Assembly System.Windows.Forms
    
    $excel = (Get-Process).Name -contains "EXCEL"
    if ($excel -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Excelは起動されています")
    }
    
    $word = (Get-Process).Name -contains "WINWORD"
    if ($word -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Wordは起動されています")
    }
    
    $powerpoint = (Get-Process).Name -contains "POWERPNT"
    if ($powerpoint -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("PowerPointは起動されています")
    }
    
    $outlook = (Get-Process).Name -contains "OUTLOOK"
    if ($outlook -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("Outlookは起動されています")
    }
    
    $access = (Get-Process).Name -contains "MSACCESS"
    if ($access -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("ACCESSは起動されています")
    }
    
    $onenote = (Get-Process).Name -contains "ONENOTE"
    if ($onenote -eq "True") {
       [System.Windows.Forms.MessageBox]::Show("OneNoteは起動されています")
    }
    $claunch = (Get-Process).Name -contains "CLaunch" if ($claunch -eq "True") { [System.Windows.Forms.MessageBox]::Show("CLaunchは起動されています") }






    2019年8月15日 12:36
  • 「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動チェックを関数化をしてみましたが、「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「CLaunch.exe」が起動していてもダイアログは表示されず、処理はそのまま進んでしまいました。

    ご教示いただけないでしょうか。

    # ------------------+---------------------------------------------- #
    #  プログラム名     | Office_CLaunch_Config_ImportExport.ps1        #
    # ------------------+---------------------------------------------- #
    #  プログラムの概要 | ① パソコンの交換前にOffice、CLaunchの設定の  #
    #                   |    エクスポートを行う。                       #
    #                   | ② パソコンの交換後にOffice、CLaunchの設定の  #
    #                   |    インポートを行う。                         #
    # ------------------+---------------------------------------------- #
    
    # ------------------------------------
    #  □ 定義 (フォーム)
    # ------------------------------------
    
    # -- アセンブリの読み込み --
    Add-Type -AssemblyName System.Windows.Forms
    Add-Type -AssemblyName System.Drawing
    
    # -- フォームの作成 --
    $form = New-Object System.Windows.Forms.Form
    $form.Text = "Office CLaunch 設定 インポート/エクスポート ツール"
    $form.Size = New-Object System.Drawing.Size(520,360)
    $form.StartPosition = "CenterScreen"
    $form.MaximizeBox = $False
    $form.MinimizeBox = $False
    $form.ControlBox = $False
    $form.FormBorderStyle = "FixedSingle"
    $form.TopMost = $True
    
    # -- ラジオボタンの作成(エクスポート) --
    $ExportButton = New-Object System.Windows.Forms.RadioButton
    $ExportButton.Location = New-Object System.Drawing.Point(200,180)
    $ExportButton.Size = New-Object System.Drawing.Size(100,30)
    $ExportButton.Checked = $True
    $ExportButton.Text = "エクスポート"
    
    # -- ラジオボタンの作成(インポート) --
    $ImportButton = New-Object System.Windows.Forms.RadioButton
    $ImportButton.Location = New-Object System.Drawing.Point(200,210)
    $ImportButton.Size = New-Object System.Drawing.Size(100,30)
    $ImportButton.Checked = $False
    $ImportButton.Text = "インポート"
    
    $form.Controls.AddRange(@($ExportButton,$ImportButton))
    
    # -- ボタンの作成(はい) --
    $YesButton = New-Object System.Windows.Forms.Button
    $YesButton.Location = New-Object System.Drawing.Point(150,250)
    $YesButton.Size = New-Object System.Drawing.Size(90,30)
    $YesButton.Text = "はい"
    $YesButton.DialogResult = [System.Windows.Forms.DialogResult]::Yes
    $form.Controls.Add($YesButton)
    $form.AcceptButton = $YesButton
    
    # -- ボタンの作成(いいえ) --
    $NoButton = New-Object System.Windows.Forms.Button
    $NoButton.Location = New-Object System.Drawing.Point(250,250)
    $NoButton.Size = New-Object System.Drawing.Size(90,30)
    $NoButton.Text = "いいえ"
    $NoButton.DialogResult = [System.Windows.Forms.DialogResult]::No
    $form.Controls.Add($NoButton)
    $form.AcceptButton = $NoButton
    
    # -- メッセージ --
    $Message = "以下のアプリケーションの設定をインポート/エクスポートします。`n"
    $Message += "`n"
    $Message += "実行する場合は[はい]ボタン、キャンセルする場合は[いいえ]ボタンを押下してください。`n"
    $Message += "`n"
    $Message += "【設定情報】`n"
    $Message += "`n"
    $Message += "① Office・・・・リボン/クイックアクセスツールバー、スペルチェック用辞書`n"
    $Message += "`n"
    $Message += "② Outlook・・・ナビゲーションウインドウの設定、送受信グループ、印刷設定、テンプレート、署名`n" 
    $Message += "`n"
    $Message += "③ CLaunch・・・設定`n" 
    $Message += "`n"
    
    # -- ラベル --
    $Label = New-Object System.Windows.Forms.Label
    $Label.Location = New-Object System.Drawing.Point(20,20)
    $Label.Size = New-Object System.Drawing.Size(480,310)
    $Label.Text = $Message
    $Label.TextAlign = "TopLeft"
    $form.Controls.Add($Label)
    
    # ------------------------------------
    #  □ 定義 (ログ)
    # ------------------------------------
    
    # -- ログフォルダ --
    $LogFolder = "D:\Log"
    
    # -- ログファイル --
    $LogFile = "Office_CLaunch_Config_ImportExport.log"
    
    # ------------------------------------
    #  □ 定義 (エクスポート先)
    # ------------------------------------
    
    # -- エクスポートフォルダ --
    $ExportFolder = "D:\Export"
    
    # ------------------------------------
    #  □ 定義 (インポート先)
    # ------------------------------------
    
    # -- インポートフォルダ1(リボン/クイックアクセスツールバー)
    $ImportFolder1 = "C:\Users\env:USERNAME\AppData\Local\Microsoft\Office"
    
    # -- インポートフォルダ2(スペルチェック用辞書)
    $ImportFolder2 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Proof"
    
    # -- インポートフォルダ3(ナビゲーションウインドウの設定、送信グループ、印刷設定)
    $ImportFolder3 = "C:\env:USERNAME\AppData\Roaming\Microsoft\Outlook"
    
    # -- インポートフォルダ4(テンプレート)
    $ImportFolder4 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Templetes"
    
    # -- インポートフォルダ5(署名)
    $ImportFolder5 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Signatures"
    
    # -- インポートフォルダ6(CLaunch)
    $ImportFolder6 = "C:\Users\env:USERNAME\AppData\Local\Claunch\Data"
    
    # ----------+---------------------------------------------- #
    #  関数     | Get-Check-Process                             #
    # ----------+---------------------------------------------- #
    #  概要     | 以下のプロセスの稼働をチェックを行い、稼働    #
    #           | している場合は、プロセスを終了するように      #
    #           | 促すダイアログを表示して、本プログラムを      #
    #           | 終了する。                                    #
    #           |                                               #
    #           | <プロセス>                                    #
    #           | ・WINWORD.EXE                                 #
    #           | ・EXCEL.EXE                                   #
    #           | ・POWERPNT.EXE                                #
    #           | ・MSACCESS.EXE                                #
    #           | ・ONENOTE.EXE                                 #
    #           | ・OUTLOOK.EXE                                 #
    #           | ・CLaunxhe.exe                                #
    #-----------+-----------------------------------------------#
    # 引数      | なし                                          #
    #-----------+-----------------------------------------------#
    # 戻り値    | $Active_Process_Status                        #
    #-----------+-----------------------------------------------#
    function Get-Check-Process
    {
       $Active_Process_Status = "False"
    
       $excel = (Get-Process).Name -contains "EXCEL"
       if ($excel -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】Excelが起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
    
       $word = (Get-Process).Name -contains "WINWORD"
       if ($word -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】Wordが起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
    
       $powerpoint = (Get-Process).Name -contains "POWERPNT"
       if ($powerpoint -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】PowerPointが起動していますので、終了してください")
           $Active_Process_Status = "True"
    }
    
       $access = (Get-Process).Name -contains "MSACCESS"
       if ($access -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】Accessが起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
    
       $onenote = (Get-Process).Name -contains "ONENOTE"
       if ($access -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】OneNoteが起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
    
       $outlook = (Get-Process).Name -contains "OUTLOOK"
       if ($outlook -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】Outlookが起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
    
       $claunch = (Get-Process).Name -contains "CLaunch"
       if ($claunch -eq "True") {
           [System.Windows.Forms.MessageBox]::Show("【警告】CLaunchは起動が起動していますので、終了してください")
           $Active_Process_Status = "True"
       }
       return $Active_Process_Status
    }
    
    # ------------------------------------
    #  ■ 処理
    # ------------------------------------
    # -- フォームの表示 --
    $result = $form.ShowDialog()
    
    # -- ログフォルダの確認 --
    if (!(Test-Path -Path $LogFolder)){
         New-Item -ItemType Directory -Path $LogFolder
         if ($? -eq "True") {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログフォルダを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログフォルダの作成に失敗しました")
             Exit
         }
    }
    
    # -- ログファイルの確認 --
    if (!(Test-Path -Path $LogFolder\$LogFile)){
         New-Item $LogFolder\$LogFile
         if ($? -eq "True") {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログファイルを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログファイルの作成に失敗しました")
             Exit
         }
    }
    
    # -- 「はい」ボタンを選択した場合 --
    if ($result -eq "Yes") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「はい」ボタンが選択されました。" >> $LogFolder\$LogFile
    
        Get-Check-Process
    
        if ($Actice_Process_Status -eq "True") {
            Exit
        }
    
    # -- 「エクスポート」ラジオボタンを選択した場合 --
        if ($ExportButton.Checked -eq "True") {
            if (!(Test-Path -Path $ExortFolder)){
                New-Item -ItemType Directory -Path $ExportFolder
                if ($? -eq "True") {
                    [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートフォルダを作成しました")
                    $Date = Get-Date
                    "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダを作成しました。" >> $LogFolder\$LogFile
                } else {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダの作成に失敗しました")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:エクスポートフォルダの作成に失敗しました。" >> $LogFolder\$LogFile
                    Exit
                }
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                    if (!($itemList = Get-Childitem $ImportFolder1 -Filter *.OfficeUI)){
                        [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定がありません")
                        $Date = Get-Date
                        "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                    } else {
                        foreach ($item in $itemList) {
                                 Copy-Item $ImportFolder1\$item $ExportFolder
                                 if ($? -eq "True") {
                                     $Date = Get-Date
                                    "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                                 } else {
                                     [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのエクスポートに失敗しました")
                                     $Date = Get-Date
                                     "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                                 }
                        }
                    }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder2 -Filter CUSTOM.DIC)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder2\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループのエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートを格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:テンプレートを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder4 -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレートがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder4\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートのエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" +$item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.txt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date                   
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.rtf)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq "True") {
                                $Date = Get-Date
                                "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:【エラー】CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder6 -Filter *.ini)) {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder6\$item $ExportFolder
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:エクスポートが終了しました。" >> $LogFolder\$LogFile
        }
    
    
    # -- 「インポート」ラジオボタンを選択した場合 --
        if ($ImportButton.Checked -eq "True") {
            if (!(Test-Path -Path $ExportFolder)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダが存在しません")
                $Date =Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダが存在しません。" >> $LogFolder\$LogFile
                Exit
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーを格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.OfficeUI)){
                    [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder1
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter CUSTOM.DIC)){
                   [System.Windows.Forms.MessageBox]::Show("スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder2
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:ナビゲーションウインドウの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:送信グループのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:印刷設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートを格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:テンプレートを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("テンプレートがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレートがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder4
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:テンプレートのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.txt)){
                   [System.Windows.Forms.MessageBox]::Show("署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.rtf)){
                   [System.Windows.Forms.MessageBox]::Show("署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.ini)){
                   [System.Windows.Forms.MessageBox]::Show("CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImoortFolder6
                             if ($? -eq "True") {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:CLaunchの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】インポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:インポートが終了しました。" >> $LogFolder\$LogFile
        }
    }
    if ($result -eq "No") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「いいえ」ボタンが選択されました。" >> $LogFolder\$LogFile
        [System.Windows.Forms.MessageBox]::Show("終了しました")
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:終了しました。" >> $LogFolder\$LogFile
        Exit
    }



    2019年8月25日 14:03
  • 条件判定の部分のTrue、Falseを以下のように修正ください

    "True" → $True

    "False" → $False

    (Get-Process).Name -contains の戻り値はBoolenです。表示錠は"True"あるいは"False"と表示されますが、

    内部では$Trueあるいは$Falseのどちらかになります。

    2019年8月26日 0:51
  • ありがとうございます。

    "True"は$True、"False"は$Falseに変更したところ、「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「MSACCESS.EXE」「ONENOTE.EXE」「CLaunch.exe」が起動している場合、ダイアログを表示できるようになりました。

    「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「MSACCESS.EXE」「ONENOTE.EXE」「CLaunch.exe」が起動している場合、$Active_Process_Statusに$Trueをセットして、戻り値として$Active_Process_Statusを返しており、$Active_Process_Statusが$Trueである場合、終了するようにしていますが、終了せずに次のステップが実行されてしまっています。

    # ------------------+---------------------------------------------- #
    #  プログラム名     | Office_CLaunch_Config_ImportExport.ps1        #
    # ------------------+---------------------------------------------- #
    #  プログラムの概要 | ① パソコンの交換前にOffice、CLaunchの設定の  #
    #                   |    エクスポートを行う。                       #
    #                   | ② パソコンの交換後にOffice、CLaunchの設定の  #
    #                   |    インポートを行う。                         #
    # ------------------+---------------------------------------------- #
    
    # ------------------------------------
    #  □ 定義 (フォーム)
    # ------------------------------------
    
    # -- アセンブリの読み込み --
    Add-Type -AssemblyName System.Windows.Forms
    Add-Type -AssemblyName System.Drawing
    
    # -- フォームの作成 --
    $form = New-Object System.Windows.Forms.Form
    $form.Text = "Office CLaunch 設定 インポート/エクスポート ツール"
    $form.Size = New-Object System.Drawing.Size(520,360)
    $form.StartPosition = "CenterScreen"
    $form.MaximizeBox = $False
    $form.MinimizeBox = $False
    $form.ControlBox = $False
    $form.BorderStyle = "FixedSingle"
    $form.TopMost = $True
    
    # -- ラジオボタンの作成(エクスポート) --
    $ExportButton = New-Object System.Windows.Forms.RadioButton
    $ExportButton.Location = New-Object System.Drawing.Point(200,180)
    $ExportButton.Size = New-Object System.Drawing.Size(100,30)
    $ExportButton.Checked = $True
    $ExportButton.Text = "エクスポート"
    
    # -- ラジオボタンの作成(インポート) --
    $ImportButton = New-Object System.Windows.Forms.RadioButton
    $ImportButton.Location = New-Object System.Drawing.Point(200,210)
    $ImportButton.Size = New-Object System.Drawing.Size(100,30)
    $ImportButton.Checked = $False
    $ImportButton.Text = "インポート"
    
    $form.Controls.AddRange(@($ExportButton,$ImportButton))
    
    # -- ボタンの作成(はい) --
    $YesButton = New-Object System.Windows.Forms.Button
    $YesButton.Location = New-Object System.Drawing.Point(150,250)
    $YesButton.Size = New-Object System.Drawing.Size(90,30)
    $YesButton.Text = "はい"
    $YesButton.DialogResult = [System.Windows.Forms.DialogResult]::Yes
    $form.Controls.Add($YesButton)
    $form.AcceptButton = $YesButton
    
    # -- ボタンの作成(いいえ) --
    $NoButton = New-Object System.Windows.Forms.Button
    $NoButton.Location = New-Object System.Drawing.Point(250,250)
    $NoButton.Size = New-Object System.Drawing.Size(90,30)
    $NoButton.Text = "いいえ"
    $NoButton.DialogResult = [System.Windows.Forms.DialogResult]::No
    $form.Controls.Add($NoButton)
    $form.AcceptButton = $NoButton
    
    # -- メッセージ --
    $Message = "以下のアプリケーションの設定をインポート/エクスポートします。`n"
    $Message += "`n"
    $Message += "実行する場合は[はい]ボタン、キャンセルする場合は[いいえ]ボタンを押下してください。`n"
    $Message += "`n"
    $Message += "【設定情報】`n"
    $Message += "`n"
    $Message += "① Office・・・・リボン/クイックアクセスツールバー、スペルチェック用辞書`n"
    $Message += "`n"
    $Message += "② Outlook・・・ナビゲーションウインドウの設定、送受信グループ、印刷設定、テンプレート、署名`n" 
    $Message += "`n"
    $Message += "③ CLaunch・・・設定`n" 
    $Message += "`n"
    
    # -- ラベル --
    $Label = New-Object System.Windows.Forms.Label
    $Label.Location = New-Object System.Drawing.Point(20,20)
    $Label.Size = New-Object System.Drawing.Size(480,310)
    $Label.Text = $Message
    $Label.TextAlign = "TopLeft"
    $form.Controls.Add($Label)
    
    # ------------------------------------
    #  □ 定義 (ログ)
    # ------------------------------------
    
    # -- ログフォルダ --
    $LogFolder = "D:\Log"
    
    # -- ログファイル --
    $LogFile = "Office_CLaunch_Config_ImportExport.log"
    
    # ------------------------------------
    #  □ 定義 (エクスポート先)
    # ------------------------------------
    
    # -- エクスポートフォルダ --
    $ExportFolder = "D:\Export"
    
    # ------------------------------------
    #  □ 定義 (インポート先)
    # ------------------------------------
    
    # -- インポートフォルダ1(リボン/クイックアクセスツールバー)
    $ImportFolder1 = "C:\Users\env:USERNAME\AppData\Local\Microsoft\Office"
    
    # -- インポートフォルダ2(スペルチェック用辞書)
    $ImportFolder2 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Proof"
    
    # -- インポートフォルダ3(ナビゲーションウインドウの設定、送信グループ、印刷設定)
    $ImportFolder3 = "C:\env:USERNAME\AppData\Roaming\Microsoft\Outlook"
    
    # -- インポートフォルダ4(テンプレート)
    $ImportFolder4 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Templetes"
    
    # -- インポートフォルダ5(署名)
    $ImportFolder5 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Signatures"
    
    # -- インポートフォルダ6(CLaunch)
    $ImportFolder6 = "C:\Users\env:USERNAME\AppData\Local\Claunch\Data"
    
    # ----------+---------------------------------------------- #
    #  関数     | Get-Check-Process                             #
    # ----------+---------------------------------------------- #
    #  概要     | 以下のプロセスの稼働をチェックを行い、稼働    #
    #           | している場合は、プロセスを終了するように      #
    #           | 促すダイアログを表示して、本プログラムを      #
    #           | 終了する。                                    #
    #           |                                               #
    #           | <プロセス>                                    #
    #           | ・WINWORD.EXE                                 #
    #           | ・EXCEL.EXE                                   #
    #           | ・POWERPNT.EXE                                #
    #           | ・MSACCESS.EXE                                #
    #           | ・ONENOTE.EXE                                 #
    #           | ・OUTLOOK.EXE                                 #
    #           | ・CLaunxhe.exe                                #
    #-----------+-----------------------------------------------#
    # 引数      | なし                                          #
    #-----------+-----------------------------------------------#
    # 戻り値    | $Active_Process_Status                        #
    #-----------+-----------------------------------------------#
    function Get-Check-Process
    {
       $Active_Process_Status = $False
    
       $excel = (Get-Process).Name -contains "EXCEL"
       if ($excel -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Excelが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $word = (Get-Process).Name -contains "WINWORD"
       if ($word -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Wordが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $powerpoint = (Get-Process).Name -contains "POWERPNT"
       if ($powerpoint -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】PowerPointが起動していますので、終了してください")
           $Active_Process_Status = $True
    }
    
       $access = (Get-Process).Name -contains "MSACCESS"
       if ($access -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Accessが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $onenote = (Get-Process).Name -contains "ONENOTE"
       if ($access -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】OneNoteが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $outlook = (Get-Process).Name -contains "OUTLOOK"
       if ($outlook -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Outlookが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $claunch = (Get-Process).Name -contains "CLaunch"
       if ($claunch -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】CLaunchは起動が起動していますので、終了してください")
           $Active_Process_Status = $True
       }
       return $Active_Process_Status
    }
    
    # ------------------------------------
    #  ■ 処理
    # ------------------------------------
    # -- フォームの表示 --
    $result = $form.ShowDialog()
    
    # -- ログフォルダの確認 --
    if (!(Test-Path -Path $LogFolder)){
         New-Item -ItemType Directory -Path $LogFolder
         if ($? -eq $True) {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログフォルダを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログフォルダの作成に失敗しました")
             Exit
         }
    }
    
    # -- ログファイルの確認 --
    if (!(Test-Path -Path $LogFolder\$LogFile)){
         New-Item $LogFolder\$LogFile
         if ($? -eq $True) {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログファイルを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログファイルの作成に失敗しました")
             Exit
         }
    }
    
    # -- 「はい」ボタンを選択した場合 --
    if ($result -eq "Yes") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「はい」ボタンが選択されました。" >> $LogFolder\$LogFile
    
        Get-Check-Process
    
        if ($Actice_Process_Status -eq $True) {
            Exit
        }
    
    # -- 「エクスポート」ラジオボタンを選択した場合 --
        if ($ExportButton.Checked -eq $True) {
            if (!(Test-Path -Path $ExortFolder)){
                New-Item -ItemType Directory -Path $ExportFolder
                if ($? -eq $True) {
                    [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートフォルダを作成しました")
                    $Date = Get-Date
                    "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダを作成しました。" >> $LogFolder\$LogFile
                } else {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダの作成に失敗しました")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:エクスポートフォルダの作成に失敗しました。" >> $LogFolder\$LogFile
                    Exit
                }
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                    if (!($itemList = Get-Childitem $ImportFolder1 -Filter *.OfficeUI)){
                        [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定がありません")
                        $Date = Get-Date
                        "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                    } else {
                        foreach ($item in $itemList) {
                                 Copy-Item $ImportFolder1\$item $ExportFolder
                                 if ($? -eq $True) {
                                     $Date = Get-Date
                                    "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                                 } else {
                                     [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのエクスポートに失敗しました")
                                     $Date = Get-Date
                                     "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                                 }
                        }
                    }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder2 -Filter CUSTOM.DIC)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder2\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループのエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートを格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:テンプレートを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder4 -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレートがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder4\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートのエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" +$item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.txt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date                   
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.rtf)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                $Date = Get-Date
                                "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:【エラー】CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder6 -Filter *.ini)) {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder6\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:エクスポートが終了しました。" >> $LogFolder\$LogFile
        }
    
    
    # -- 「インポート」ラジオボタンを選択した場合 --
        if ($ImportButton.Checked -eq "True") {
            if (!(Test-Path -Path $ExportFolder)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダが存在しません")
                $Date =Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダが存在しません。" >> $LogFolder\$LogFile
                Exit
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーを格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.OfficeUI)){
                    [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder1
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter CUSTOM.DIC)){
                   [System.Windows.Forms.MessageBox]::Show("スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder2
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:ナビゲーションウインドウの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:送信グループのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:印刷設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + "説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレートを格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:テンプレートを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("テンプレートがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレートがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder4
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:テンプレートのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.txt)){
                   [System.Windows.Forms.MessageBox]::Show("署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.rtf)){
                   [System.Windows.Forms.MessageBox]::Show("署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.ini)){
                   [System.Windows.Forms.MessageBox]::Show("CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImoortFolder6
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:CLaunchの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】インポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:インポートが終了しました。" >> $LogFolder\$LogFile
        }
    }
    if ($result -eq "No") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「いいえ」ボタンが選択されました。" >> $LogFolder\$LogFile
        [System.Windows.Forms.MessageBox]::Show("終了しました")
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:終了しました。" >> $LogFolder\$LogFile
        Exit
    }


    2019年8月26日 13:02
  • $result = Get-Check-Process
    
        if ($result) {
            Exit
        }

    判定している個所を上記のように別変数(上記例では$result)に代入して判別してみてください。

    Get-Check-Process関数は呼び出されていますが、スコープが違うので変数に代入されていないのだと思います。

    2019年8月27日 0:34
  • ありがとうございます。

    ご教示いただきました記載に変更して、「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「MSACCESS.EXE」「ONENOTE.EXE」「CLaunch.exe」が起動している場合はダイアログを表示して終了され、、「WINWORD.EXE」「EXCEL.EXE」「POWERPNT.EXE」「OUTLOOK.EXE」「MSACCESS.EXE」「ONENOTE.EXE」「CLaunch.exe」が起動していないときは、処理が実行されるようになりました。

    # ------------------+---------------------------------------------- #
    #  プログラム名     | Office_CLaunch_Config_ImportExport.ps1        #
    # ------------------+---------------------------------------------- #
    #  プログラムの概要 | ① パソコンの交換前にOffice、CLaunchの設定の  #
    #                   |    エクスポートを行う。                       #
    #                   | ② パソコンの交換後にOffice、CLaunchの設定の  #
    #                   |    インポートを行う。                         #
    # ------------------+---------------------------------------------- #
    
    # ------------------------------------
    #  □ 定義 (フォーム)
    # ------------------------------------
    
    # -- アセンブリの読み込み --
    Add-Type -AssemblyName System.Windows.Forms
    Add-Type -AssemblyName System.Drawing
    
    # -- フォームの作成 --
    $form = New-Object System.Windows.Forms.Form
    $form.Text = "Office CLaunch 設定 インポート/エクスポート ツール"
    $form.Size = New-Object System.Drawing.Size(520,360)
    $form.StartPosition = "CenterScreen"
    $form.MaximizeBox = $False
    $form.MinimizeBox = $False
    $form.ControlBox = $False
    $form.FormBorderStyle = "FixedSingle"
    $form.TopMost = $True
    
    # -- ラジオボタンの作成(エクスポート) --
    $ExportButton = New-Object System.Windows.Forms.RadioButton
    $ExportButton.Location = New-Object System.Drawing.Point(200,180)
    $ExportButton.Size = New-Object System.Drawing.Size(100,30)
    $ExportButton.Checked = $True
    $ExportButton.Text = "エクスポート"
    
    # -- ラジオボタンの作成(インポート) --
    $ImportButton = New-Object System.Windows.Forms.RadioButton
    $ImportButton.Location = New-Object System.Drawing.Point(200,210)
    $ImportButton.Size = New-Object System.Drawing.Size(100,30)
    $ImportButton.Checked = $False
    $ImportButton.Text = "インポート"
    
    $form.Controls.AddRange(@($ExportButton,$ImportButton))
    
    # -- ボタンの作成(はい) --
    $YesButton = New-Object System.Windows.Forms.Button
    $YesButton.Location = New-Object System.Drawing.Point(150,250)
    $YesButton.Size = New-Object System.Drawing.Size(90,30)
    $YesButton.Text = "はい"
    $YesButton.DialogResult = [System.Windows.Forms.DialogResult]::Yes
    $form.Controls.Add($YesButton)
    $form.AcceptButton = $YesButton
    
    # -- ボタンの作成(いいえ) --
    $NoButton = New-Object System.Windows.Forms.Button
    $NoButton.Location = New-Object System.Drawing.Point(250,250)
    $NoButton.Size = New-Object System.Drawing.Size(90,30)
    $NoButton.Text = "いいえ"
    $NoButton.DialogResult = [System.Windows.Forms.DialogResult]::No
    $form.Controls.Add($NoButton)
    $form.AcceptButton = $NoButton
    
    # -- メッセージ --
    $Message = "以下のアプリケーションの設定をインポート/エクスポートします。`n"
    $Message += "`n"
    $Message += "実行する場合は[はい]ボタン、キャンセルする場合は[いいえ]ボタンを押下してください。`n"
    $Message += "`n"
    $Message += "【設定情報】`n"
    $Message += "`n"
    $Message += "① Office・・・・リボン/クイックアクセスツールバー、スペルチェック用辞書`n"
    $Message += "`n"
    $Message += "② Outlook・・・ナビゲーションウインドウの設定、送受信グループ、印刷設定、テンプレート、署名`n" 
    $Message += "`n"
    $Message += "③ CLaunch・・・設定`n" 
    $Message += "`n"
    
    # -- ラベル --
    $Label = New-Object System.Windows.Forms.Label
    $Label.Location = New-Object System.Drawing.Point(20,20)
    $Label.Size = New-Object System.Drawing.Size(480,310)
    $Label.Text = $Message
    $Label.TextAlign = "TopLeft"
    $form.Controls.Add($Label)
    
    # ------------------------------------
    #  □ 定義 (ログ)
    # ------------------------------------
    
    # -- ログフォルダ --
    $LogFolder = "C:\Log"
    
    # -- ログファイル --
    $LogFile = "Office_CLaunch_Config_ImportExport.log"
    
    # ------------------------------------
    #  □ 定義 (エクスポート先)
    # ------------------------------------
    
    # -- エクスポートフォルダ --
    $ExportFolder = "C:\Export"
    
    # ------------------------------------
    #  □ 定義 (インポート先)
    # ------------------------------------
    
    # -- インポートフォルダ1(リボン/クイックアクセスツールバー)
    $ImportFolder1 = "C:\Users\env:USERNAME\AppData\Local\Microsoft\Office"
    
    # -- インポートフォルダ2(スペルチェック用辞書)
    $ImportFolder2 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Proof"
    
    # -- インポートフォルダ3(ナビゲーションウインドウの設定、送信グループ、印刷設定)
    $ImportFolder3 = "C:\env:USERNAME\AppData\Roaming\Microsoft\Outlook"
    
    # -- インポートフォルダ4(テンプレート)
    $ImportFolder4 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Templetes"
    
    # -- インポートフォルダ5(署名)
    $ImportFolder5 = "C:\Users\env:USERNAME\AppData\Roaming\Microsoft\Signatures"
    
    # -- インポートフォルダ6(CLaunch)
    $ImportFolder6 = "C:\Users\env:USERNAME\AppData\Local\Claunch\Data"
    
    # ----------+---------------------------------------------- #
    #  関数     | Get-Check-Process                             #
    # ----------+---------------------------------------------- #
    #  概要     | 以下のプロセスの稼働をチェックを行い、稼働    #
    #           | している場合は、プロセスを終了するように      #
    #           | 促すダイアログを表示して、本プログラムを      #
    #           | 終了する。                                    #
    #           |                                               #
    #           | <プロセス>                                    #
    #           | ・WINWORD.EXE                                 #
    #           | ・EXCEL.EXE                                   #
    #           | ・POWERPNT.EXE                                #
    #           | ・MSACCESS.EXE                                #
    #           | ・ONENOTE.EXE                                 #
    #           | ・OUTLOOK.EXE                                 #
    #           | ・CLaunxhe.exe                                #
    #-----------+-----------------------------------------------#
    # 引数      | なし                                          #
    #-----------+-----------------------------------------------#
    # 戻り値    | $Active_Process_Status                        #
    #-----------+-----------------------------------------------#
    function Get-Check-Process
    {
       $Active_Process_Status = $False
    
       $excel = (Get-Process).Name -contains "EXCEL"
       if ($excel -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Excelが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $word = (Get-Process).Name -contains "WINWORD"
       if ($word -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Wordが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $powerpoint = (Get-Process).Name -contains "POWERPNT"
       if ($powerpoint -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】PowerPointが起動していますので、終了してください")
           $Active_Process_Status = $True
    }
    
       $access = (Get-Process).Name -contains "MSACCESS"
       if ($access -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Accessが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $onenote = (Get-Process).Name -contains "ONENOTE"
       if ($access -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】OneNoteが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $outlook = (Get-Process).Name -contains "OUTLOOK"
       if ($outlook -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】Outlookが起動していますので、終了してください")
           $Active_Process_Status = $True
       }
    
       $claunch = (Get-Process).Name -contains "CLaunch"
       if ($claunch -eq $True) {
           [System.Windows.Forms.MessageBox]::Show("【警告】CLaunchは起動が起動していますので、終了してください")
           $Active_Process_Status = $True
       }
       return $Active_Process_Status
    }
    
    # ------------------------------------
    #  ■ 処理
    # ------------------------------------
    # -- フォームの表示 --
    $result = $form.ShowDialog()
    
    # -- ログフォルダの確認 --
    if (!(Test-Path -Path $LogFolder)){
         New-Item -ItemType Directory -Path $LogFolder
         if ($? -eq $True) {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログフォルダを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログフォルダの作成に失敗しました")
             Exit
         }
    }
    
    # -- ログファイルの確認 --
    if (!(Test-Path -Path $LogFolder\$LogFile)){
         New-Item $LogFolder\$LogFile
         if ($? -eq $True) {
             [System.Windows.Forms.MessageBox]::Show("【情報】ログファイルを作成しました")
         } else {
             [System.Windows.Forms.MessageBox]::Show("【エラー】ログファイルの作成に失敗しました")
             Exit
         }
    }
    
    # -- 「はい」ボタンを選択した場合 --
    if ($result -eq "Yes") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「はい」ボタンが選択されました。" >> $LogFolder\$LogFile
    
        $result = Get-Check-Process
    
        if ($result) {
            Exit
        }
    
    # -- 「エクスポート」ラジオボタンを選択した場合 --
        if ($ExportButton.Checked -eq $True) {
            if (!(Test-Path -Path $ExortFolder)){
                New-Item -ItemType Directory -Path $ExportFolder
                if ($? -eq $True) {
                    [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートフォルダを作成しました")
                    $Date = Get-Date
                    "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダを作成しました。" >> $LogFolder\$LogFile
                } else {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダの作成に失敗しました")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:エクスポートフォルダの作成に失敗しました。" >> $LogFolder\$LogFile
                    Exit
                }
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                    if (!($itemList = Get-Childitem $ImportFolder1 -Filter *.OfficeUI)){
                        [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーの設定がありません")
                        $Date = Get-Date
                        "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                    } else {
                        foreach ($item in $itemList) {
                                 Copy-Item $ImportFolder1\$item $ExportFolder
                                 if ($? -eq $True) {
                                     $Date = Get-Date
                                    "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                                 } else {
                                     [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのエクスポートに失敗しました")
                                     $Date = Get-Date
                                     "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                                 }
                        }
                    }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder2 -Filter CUSTOM.DIC)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder2\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】送信グループのエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder3 -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder3\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】印刷設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレート(oft形式)を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:テンプレート(oft形式)を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder4 -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレート(oft形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレート(oft形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder4\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレート(oft形式)のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" +$item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.txt)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名(TXT形式)のエクスポートに失敗しました")
                                 $Date = Get-Date                   
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.rtf)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名(RTF形式)のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ImportFolder5 -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("【エラー】署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder5\$item $ExportFolder
                             if ($? -eq $True) {
                                $Date = Get-Date
                                "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】署名(HTM形式)のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:【エラー】CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ImportFolder6 -Filter *.ini)) {
                    [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ImportFolder6\$item $ExportFolder
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定のエクスポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ExportFolder + "にエクスポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】エクスポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:エクスポートが終了しました。" >> $LogFolder\$LogFile
        }
    
    
    # -- 「インポート」ラジオボタンを選択した場合 --
        if ($ImportButton.Checked -eq "True") {
            if (!(Test-Path -Path $ExportFolder)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】エクスポートフォルダが存在しません")
                $Date =Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:エクスポートフォルダが存在しません。" >> $LogFolder\$LogFile
                Exit
            }
    
            if (!(Test-Path -Path $ImportFolder1)){
                [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーを格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーを格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.OfficeUI)){
                    [System.Windows.Forms.MessageBox]::Show("リボン/クイックアクセスツールバーの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:リボン/クイックアクセスツールバーの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder1
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】リボン/クイックアクセスツールバーのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder1 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder2)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter CUSTOM.DIC)){
                   [System.Windows.Forms.MessageBox]::Show("スペルチェック用辞書がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:スペルチェック用辞書がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder2
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】スペルチェック用辞書のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder2 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder3)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定、送信グループ、印刷設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.xml)){
                    [System.Windows.Forms.MessageBox]::Show("ナビゲーションウインドウの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:ナビゲーションウインドウの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:ナビゲーションウインドウの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.srs)){
                    [System.Windows.Forms.MessageBox]::Show("送信グループがありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:送信グループがありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:送信グループのインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter OutlPrnt)){
                    [System.Windows.Forms.MessageBox]::Show("印刷設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:印刷設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder3
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:印刷設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + "説明:" + $item.Name + "を" + $ImportFolder3 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder4)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】テンプレート(oft形式)を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:テンプレート(oft形式)を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.oft)){
                    [System.Windows.Forms.MessageBox]::Show("テンプレート(oft形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:テンプレート(oft形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder4
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:テンプレート(oft形式)のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder4 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder5)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】署名を格納しているフォルダがありません")
                $Date = Get-Date
                "【エラー】日付と時刻:" + $Date + " 説明:署名を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.txt)){
                   [System.Windows.Forms.MessageBox]::Show("署名(TXT形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(TXT形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名(TXT形式)のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.rtf)){
                   [System.Windows.Forms.MessageBox]::Show("署名(RTF形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(RTF形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名(RTF形式)のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.htm)){
                    [System.Windows.Forms.MessageBox]::Show("署名(HTM形式)がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:署名(HTM形式)がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImportFolder5
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:署名(HTM形式)のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder5 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
    
            if (!(Test-Path -Path $ImportFolder6)){
                [System.Windows.Forms.MessageBox]::Show("【エラー】CLaunchの設定を格納しているフォルダがありません")
                $Date = Get-Date
                "【情報】日付と時刻:" + $Date + " 説明:CLaunchの設定を格納しているフォルダがありません。" >> $LogFolder\$LogFile
            } else {
                if (!($itemList = Get-Childitem $ExportFolder -Filter *.ini)){
                   [System.Windows.Forms.MessageBox]::Show("CLaunchの設定がありません")
                    $Date = Get-Date
                    "【エラー】日付と時刻:" + $Date + " 説明:CLaunchの設定がありません。" >> $LogFolder\$LogFile
                } else {
                    foreach ($item in $itemList) {
                             Copy-Item $ExportFolder\$item $ImoortFolder6
                             if ($? -eq $True) {
                                 $Date = Get-Date
                                 "【情報】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートしました。" >> $LogFolder\$LogFile
                             } else {
                                 [System.Windows.Forms.MessageBox]::Show("【エラー】:CLaunchの設定のインポートに失敗しました")
                                 $Date = Get-Date
                                 "【エラー】日付と時刻:" + $Date + " 説明:" + $item.Name + "を" + $ImportFolder6 + "にインポートが失敗しました。" >> $LogFolder\$LogFile
                             }
                    }
                }
            }
          [System.Windows.Forms.MessageBox]::Show("【情報】インポートが終了しました")
          "【情報】日付と時刻:" + $Date + " 説明:インポートが終了しました。" >> $LogFolder\$LogFile
        }
    }
    if ($result -eq "No") {
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:「いいえ」ボタンが選択されました。" >> $LogFolder\$LogFile
        [System.Windows.Forms.MessageBox]::Show("終了しました")
        $Date = Get-Date
        "【情報】日付と時刻:" + $Date + " 説明:終了しました。" >> $LogFolder\$LogFile
        Exit
    }


    2019年8月27日 12:31