---
title: PowerShellでODBCを使用してExcelのデータに接続する方法
url: 'https://automationse.net/powershell-odbc-excel-data-connection'
markdown: 'https://automationse.net/powershell-odbc-excel-data-connection.md'
date: '2024-08-01'
description: 'PowerShellを使用してODBC経由でExcelファイルのデータに接続する方法を紹介します。この手法を利用することで、Excelファイルに保存されたデータをPowerShellスクリプトで操作できるようになります。以下では、具体的な手順とスクリプトの解説を行います。 必要な準備 ODBCドライバのインストール: Excel用のODBC…'
---

## [PowerShellでODBCを使用してExcelのデータに接続する方法](https://automationse.net/powershell-odbc-excel-data-connection)

  公開日 2024.08.01 更新日 2026.03.15 

PowerShellを使用してODBC経由でExcelファイルのデータに接続する方法を紹介します。この手法を利用することで、Excelファイルに保存されたデータをPowerShellスクリプトで操作できるようになります。以下では、具体的な手順とスクリプトの解説を行います。

#### 必要な準備

1. **ODBCドライバのインストール**: Excel用のODBCドライバがインストールされていることを確認します。通常、Windowsに標準でインストールされている「Microsoft Excel Driver」が必要です。
2. **PowerShellスクリプトの作成**: 以下のスクリプトを使用して、Excelファイルに接続し、データを読み取ります。

### スクリプトの全体像

以下に、Excelファイルに接続し、データを読み取るためのPowerShellスクリプトを示します。

PowerShell

 ```powershell
# Excelファイルのパス
$excelFilePath = "C:pathtoyourdata.xlsx"
# ODBC接続文字列
$connectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=$excelFilePath;"
# ODBC接続を作成
$connection = New-Object System.Data.Odbc.OdbcConnection
$connection.ConnectionString = $connectionString
try {
    # 接続を開く
    $connection.Open()
    # SQLクエリ
    $query = "SELECT * FROM [Sheet1$]"
    # コマンドを作成
    $command = $connection.CreateCommand()
    $command.CommandText = $query
    # データを取得
    $adapter = New-Object System.Data.Odbc.OdbcDataAdapter($command)
    $dataSet = New-Object System.Data.DataSet
    $adapter.Fill($dataSet)
    # データテーブルを取得
    $dataTable = $dataSet.Tables[0]
    # データを表示
    $dataTable | Format-Table -AutoSize
}
catch {
    Write-Error $_.Exception.Message
}
finally {
    # 接続を閉じる
    $connection.Close()
}
```

### スクリプトの詳細解説

1. **Excelファイルのパスを設定**

PowerShell

 ```powershell
$excelFilePath = "C:pathtoyourdata.xlsx"
```

この行では、接続したいExcelファイルのパスを指定します。ファイルパスは絶対パスで記述します。

2. **ODBC接続文字列の作成**

PowerShell

 ```powershell
$connectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Dbq=$excelFilePath;"
```

接続文字列は、使用するODBCドライバと接続するファイルのパスを指定します。この例では、「Microsoft Excel Driver」を使用しています。

3. **ODBC接続の作成**

PowerShell

 ```powershell
$connection = New-Object System.Data.Odbc.OdbcConnection
   $connection.ConnectionString = $connectionString
```

`System.Data.Odbc.OdbcConnection`オブジェクトを作成し、接続文字列を設定します。

4. **接続の確立**

PowerShell

 ```powershell
try {
       $connection.Open()
```

`try`ブロック内で、`$connection.Open()`を使用して接続を開きます。

5. **SQLクエリの設定**

PowerShell

 ```powershell
$query = "SELECT * FROM [Sheet1$]"
```

SQLクエリを設定します。この例では、Excelファイルの「Sheet1」シートからすべてのデータを選択しています。

6. **コマンドの作成とデータの取得**

PowerShell

 ```powershell
$command = $connection.CreateCommand()
       $command.CommandText = $query
       $adapter = New-Object System.Data.Odbc.OdbcDataAdapter($command)
       $dataSet = New-Object System.Data.DataSet
       $adapter.Fill($dataSet)
```

SQLクエリを実行するためのコマンドを作成し、`OdbcDataAdapter`を使用してデータを取得します。データは`DataSet`オブジェクトに格納されます。

7. **データの表示**

PowerShell

 ```powershell
$dataTable = $dataSet.Tables[0]
       $dataTable | Format-Table -AutoSize
```

取得したデータはデータテーブルとして`$dataTable`に格納され、`Format-Table`コマンドレットを使用して整形表示されます。

8. **エラーハンドリングと接続の閉鎖**

PowerShell

 ```powershell
}
   catch {
       Write-Error $_.Exception.Message
   }
   finally {
       $connection.Close()
   }
```

`try-catch-finally`ブロックを使用してエラーハンドリングを行い、最終的に接続を閉じます。

### まとめ

この手法を使用することで、PowerShellスクリプトからExcelファイルのデータに簡単にアクセスし、操作することができます。Excelファイルのデータをプログラムから操作する必要がある場合には非常に有用です。このスクリプトをカスタマイズすることで、特定のデータ抽出や更新などの操作を自動化することが可能です。

  Previous Post Next Post

---

## Navigation

- Previous: [PowerShell でモダンなカード型UIを作る方法（Windows PowerShell 5.x 対応）](https://automationse.net/powershell-modern-card-ui-xaml.md)
- Next: [PowerShellでOutlookメールの内容を自動取得！](https://automationse.net/powershell-outlook-email-export.md)
