PythonのインストールとExcelファイル処理スクリプトの作成

## 概要
このドキュメントでは、Pythonをインストールし、Excelファイルを処理してCSV形式に変換するスクリプトを作成する方法について説明します。

## 1. Pythonのインストール

### ステップ1: Pythonのダウンロード
1. [Python公式サイト](https://www.python.org/downloads/)にアクセスします。
2. 最新版のPythonを選択し、Windows用インストーラをダウンロードします。

### ステップ2: Pythonのインストール
1. ダウンロードしたインストーラ（例: `python-3.x.x-amd64.exe`）をダブルクリックして実行します。
2. インストール画面が表示されたら、**"Add Python 3.x to PATH"** にチェックを入れます。
3. **"Install Now"** をクリックしてインストールを開始します。
4. インストールが完了したら、**"Close"** ボタンを押して画面を閉じます。

### ステップ3: インストール確認
1. **Windows PowerShell** または **コマンドプロンプト** を開きます。
2. 次のコマンドを入力して、Pythonが正しくインストールされたか確認します。
   ```bash
   python --version
   ```
   正常にインストールされていれば、Pythonのバージョンが表示されます。

## 2. `openpyxl`ライブラリのインストール

Pythonが正しくインストールされたら、次に`openpyxl`ライブラリをインストールします。このライブラリはExcelファイルを操作するために必要です。

### ステップ1: `openpyxl`のインストール
1. 再度、**Windows PowerShell** または **コマンドプロンプト** を開きます。
2. 次のコマンドを入力して`openpyxl`ライブラリをインストールします。
   ```bash
   pip install openpyxl
   ```

## 3. Pythonスクリプトの作成

以下は、特定の文字列（"検索対象"）を持つセルを検索し、その上部の行を削除してCSV形式で保存するPythonスクリプトです。

```python
import openpyxl
import csv
import argparse

# コマンドライン引数の解析
parser = argparse.ArgumentParser(description="Excelファイルを処理し、CSVに変換します。")
parser.add_argument('-excelFilePath', type=str, required=True, help="Excelファイルのパス")

args = parser.parse_args()

excel_file_path = args.excelFilePath
csv_output_path = "C:\\Output\\processed_data.csv"  # 固定のCSV出力パス

# 検索する文字列（検索対象）
search_string = "検索対象"

# Excelファイルの存在確認
try:
    # Excelファイルを開く
    print(f"Excelファイルを開いています: {excel_file_path}")
    workbook = openpyxl.load_workbook(excel_file_path)
    worksheet = workbook.active  # 最初のシートを使用

    # 使用範囲を取得
    rows = list(worksheet.iter_rows(min_row=1, max_col=worksheet.max_column, max_row=worksheet.max_row))

    # 指定文字列を含むセルを検索
    target_row_index = None
    for row_idx, row in enumerate(rows, start=1):
        for cell in row:  # 各行のすべてのセルをチェック
            if cell.value is not None and search_string in str(cell.value):
                target_row_index = row_idx
                break  # 一致したらループを抜ける
        if target_row_index is not None:
            break  # 行が見つかったら外側のループも抜ける

    if target_row_index is None:
        raise ValueError("指定した文字列のセルが見つかりませんでした。")

    # 上部の行を削除
    print(f"不要な行を削除しています... (行 {target_row_index})")
    for _ in range(1, target_row_index):
        worksheet.delete_rows(1)

    # CSVとして保存
    print(f"データをCSVとして保存しています: {csv_output_path}")
    with open(csv_output_path, mode='w', newline='', encoding='utf-8') as csv_file:
        writer = csv.writer(csv_file)
        for row in worksheet.iter_rows(min_row=1, max_row=worksheet.max_row, max_col=worksheet.max_column):
            writer.writerow([cell.value for cell in row])

    print("処理が完了しました。")

except Exception as e:
    print(f"エラーが発生しました: {e}")
```

### スクリプトの説明

- **コマンドライン引数**: `-excelFilePath`でExcelファイルのパスを指定します。
- **検索文字列**: `search_string`に直接"検索対象"が設定されています。
- **Excelファイル操作**: `openpyxl`を使用してExcelファイルを開き、指定された文字列が含まれるセルを検索します。
- **CSV出力**: 指定された文字列が見つかった場合、その上部の行を削除し、結果をCSV形式で保存します。

## 4. DelphiからPythonスクリプトを実行する方法

DelphiアプリケーションからPythonスクリプトを実行するには、以下の手順に従います。

### ステップ1: ユーザーによるExcelファイルパスの指定
- Delphiアプリケーションでダイアログボックス（例: `TOpenDialog`）を使用して、ユーザーにExcelファイルのパスを選択させます。

### ステップ2: Pythonスクリプトの実行
- 選択されたパスを引数としてPythonスクリプトを実行します。以下はDelphiコード例です。

```delphi
uses
  ShellAPI;

procedure ExecutePythonScript(const ExcelFilePath: string);
var
  PythonExePath: string;
begin
  PythonExePath := 'C:\Path\To\python.exe'; // Python実行ファイルへのパス
  ShellExecute(0, 'open', PChar(PythonExePath), PChar('C:\Path\To\process_excel.py -excelFilePath "' + ExcelFilePath + '"'), nil, SW_SHOWNORMAL);
end;
```

## 注意点

- **Python環境**: Pythonが正しくインストールされていることと、`openpyxl`ライブラリがインストールされていることを確認してください。必要な場合は次のコマンドでインストールできます。
  ```bash
  pip install openpyxl
  ```

- **エラーハンドリング**: Pythonスクリプト内でエラーハンドリングが適切に行われていることも確認してください。

## まとめ

このドキュメントでは、PythonのインストールからExcelファイルパス指定によるデータ処理まで説明しました。これにより、データ処理や変換作業が効率的に行えるようになります。