Google AI Studio に丸投げ、血圧データCSVから日毎に最高最低平均のグラフを出力するVBAマクロ

エクセルに以下の機能を持つVBAを作りたい。
1日に0から10回くらい血圧を測定したCSVデータがあります。
1行目はタイトル行で項目名は、日付,時刻,最高血圧,最低血圧,脈拍
開いているエクセルから、ウインドウズのファイルダイアログを使ってCSVファイルを選び、データをアペンドする。
一日ごとに、最高血圧と最低血圧のそれぞれで、一番高い値、平均値、一番低い値、をグラフ表示させる

```vba
Sub 血圧データ取り込みとグラフ作成()

  Dim fd As FileDialog
  Dim SelectedFile As Variant
  Dim wb As Workbook, ws As Worksheet
  Dim csvWb As Workbook, csvWs As Worksheet
  Dim LastRow As Long
  Dim i As Long
  Dim DateArray() As Date '日付を格納する配列
  Dim MaxSystolic() As Integer '最高血圧の最大値を格納する配列
  Dim MinSystolic() As Integer '最高血圧の最小値を格納する配列
  Dim AvgSystolic() As Double '最高血圧の平均値を格納する配列
  Dim MaxDiastolic() As Integer '最低血圧の最大値を格納する配列
  Dim MinDiastolic() As Integer '最低血圧の最小値を格納する配列
  Dim AvgDiastolic() As Double '最低血圧の平均値を格納する配列
  Dim DateIndex As Long
  Dim DataRow As Long
  Dim CurrentDate As Date
  Dim SystolicSum As Integer
  Dim DiastolicSum As Integer
  Dim DataCount As Integer
  Dim ChartObject As ChartObject

  'FileDialogオブジェクトの作成
  Set fd = Application.FileDialog(msoFileDialogFilePicker)

  'FileDialogの設定
  With fd
    .Title = "CSVファイルの選択"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "CSV Files", "*.csv"
  End With

  'FileDialogの表示と選択
  If fd.Show = -1 Then
    SelectedFile = fd.SelectedItems(1)
  Else
    MsgBox "ファイルが選択されませんでした。", vbExclamation
    Exit Sub
  End If

  ' 現在開いているExcelブックを取得
  Set wb = ThisWorkbook
  Set ws = wb.ActiveSheet 'アクティブシートを使用 (必要に応じてシート名を指定)

  ' CSVファイルを開く
  Set csvWb = Workbooks.Open(SelectedFile)
  Set csvWs = csvWb.Sheets(1) ' 最初のシートを使用

  ' データの最終行を取得
  LastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row

  ' タイトル行をコピー (すでにタイトル行がある場合はスキップ)
  If LastRow = 1 And IsEmpty(ws.Range("A1").Value) Then
    csvWs.Rows(1).Copy ws.Rows(1)
    LastRow = 1 'タイトル行を追加したので開始行を1にする
  End If

  ' CSVデータの貼り付け
  csvWs.Range("A2", csvWs.Cells(csvWs.Rows.Count, "A").End(xlUp).EntireRow).Copy ws.Cells(LastRow + 1, 1)

  ' CSVファイルを閉じる (保存するかどうかは状況に応じて変更)
  csvWb.Close SaveChanges:=False

  '日付で集計するための配列の準備
  ReDim DateArray(0 To 0)
  ReDim MaxSystolic(0 To 0)
  ReDim MinSystolic(0 To 0)
  ReDim AvgSystolic(0 To 0)
  ReDim MaxDiastolic(0 To 0)
  ReDim MinDiastolic(0 To 0)
  ReDim AvgDiastolic(0 To 0)

  '初期化
  DateIndex = -1
  CurrentDate = 0 '日付の初期化
  DataRow = 2 'データの開始行
  SystolicSum = 0
  DiastolicSum = 0
  DataCount = 0

  'データの最終行を再取得
  LastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row

  'データ行をループして処理
  Do While DataRow <= LastRow
    '日付の取得
    If IsDate(ws.Cells(DataRow, "A").Value) Then
        '日付の比較 (日付のみを比較)
        If DateValue(ws.Cells(DataRow, "A").Value) <> CurrentDate Then
            '新しい日付の場合
            If DataCount > 0 Then
              '前の日付のデータを保存
              AvgSystolic(DateIndex) = SystolicSum / DataCount
              AvgDiastolic(DateIndex) = DiastolicSum / DataCount
            End If

            '新しい日付の初期化
            DateIndex = DateIndex + 1
            ReDim Preserve DateArray(0 To DateIndex)
            ReDim Preserve MaxSystolic(0 To DateIndex)
            ReDim Preserve MinSystolic(0 To DateIndex)
            ReDim Preserve AvgSystolic(0 To DateIndex)
            ReDim Preserve MaxDiastolic(0 To DateIndex)
            ReDim Preserve MinDiastolic(0 To DateIndex)
            ReDim Preserve AvgDiastolic(0 To DateIndex)

            CurrentDate = DateValue(ws.Cells(DataRow, "A").Value)
            DateArray(DateIndex) = CurrentDate
            MaxSystolic(DateIndex) = ws.Cells(DataRow, "C").Value
            MinSystolic(DateIndex) = ws.Cells(DataRow, "C").Value
            MaxDiastolic(DateIndex) = ws.Cells(DataRow, "D").Value
            MinDiastolic(DateIndex) = ws.Cells(DataRow, "D").Value
            SystolicSum = 0
            DiastolicSum = 0
            DataCount = 0
        End If

        'データの集計
        If ws.Cells(DataRow, "C").Value > MaxSystolic(DateIndex) Then
            MaxSystolic(DateIndex) = ws.Cells(DataRow, "C").Value
        End If
        If ws.Cells(DataRow, "C").Value < MinSystolic(DateIndex) Then
            MinSystolic(DateIndex) = ws.Cells(DataRow, "C").Value
        End If
        If ws.Cells(DataRow, "D").Value > MaxDiastolic(DateIndex) Then
            MaxDiastolic(DateIndex) = ws.Cells(DataRow, "D").Value
        End If
        If ws.Cells(DataRow, "D").Value < MinDiastolic(DateIndex) Then
            MinDiastolic(DateIndex) = ws.Cells(DataRow, "D").Value
        End If

        SystolicSum = SystolicSum + ws.Cells(DataRow, "C").Value
        DiastolicSum = DiastolicSum + ws.Cells(DataRow, "D").Value
        DataCount = DataCount + 1
    End If

    DataRow = DataRow + 1
  Loop

  '最終日のデータを保存
  If DataCount > 0 Then
    AvgSystolic(DateIndex) = SystolicSum / DataCount
    AvgDiastolic(DateIndex) = DiastolicSum / DataCount
  End If

  'グラフ作成
  With ws
      '既存のグラフを削除
      For Each ChartObject In .ChartObjects
        ChartObject.Delete
      Next ChartObject

      ' グラフデータの範囲を設定 (グラフの表示範囲を少し広げる)
      Dim ChartRange As Range
      Set ChartRange = .Range(.Cells(1, 8), .Cells(DateIndex + 1, 14)) ' H1からN(日付数) + 1まで

      ' グラフの追加
      Set ChartObject = .ChartObjects.Add(Left:=.Cells(1, 8).Left, Top:=.Cells(1, 8).Top, Width:=600, Height:=400) ' グラフのサイズと位置を調整
      With ChartObject.Chart
          .ChartType = xlLine '折れ線グラフ
          .SetSourceData Source:=ChartRange

          '系列の追加とデータ設定
          .SeriesCollection.NewSeries
          .SeriesCollection(1).Name = "最高血圧(最大)"
          .SeriesCollection(1).Values = Application.WorksheetFunction.Transpose(MaxSystolic)
          .SeriesCollection(1).XValues = Application.WorksheetFunction.Transpose(DateArray)

          .SeriesCollection.NewSeries
          .SeriesCollection(2).Name = "最高血圧(最小)"
          .SeriesCollection(2).Values = Application.WorksheetFunction.Transpose(MinSystolic)
          .SeriesCollection(2).XValues = Application.WorksheetFunction.Transpose(DateArray)

          .SeriesCollection.NewSeries
          .SeriesCollection(3).Name = "最高血圧(平均)"
          .SeriesCollection(3).Values = Application.WorksheetFunction.Transpose(AvgSystolic)
          .SeriesCollection(3).XValues = Application.WorksheetFunction.Transpose(DateArray)

          .SeriesCollection.NewSeries
          .SeriesCollection(4).Name = "最低血圧(最大)"
          .SeriesCollection(4).Values = Application.WorksheetFunction.Transpose(MaxDiastolic)
          .SeriesCollection(4).XValues = Application.WorksheetFunction.Transpose(DateArray)

          .SeriesCollection.NewSeries
          .SeriesCollection(5).Name = "最低血圧(最小)"
          .SeriesCollection(5).Values = Application.WorksheetFunction.Transpose(MinDiastolic)
          .SeriesCollection(5).XValues = Application.WorksheetFunction.Transpose(DateArray)

          .SeriesCollection.NewSeries
          .SeriesCollection(6).Name = "最低血圧(平均)"
          .SeriesCollection(6).Values = Application.WorksheetFunction.Transpose(AvgDiastolic)
          .SeriesCollection(6).XValues = Application.WorksheetFunction.Transpose(DateArray)

          'グラフタイトル
          .HasTitle = True
          .ChartTitle.Text = "血圧データ"

          '軸ラベル
          .Axes(xlCategory, xlPrimary).HasTitle = True
          .Axes(xlCategory, xlPrimary).AxisTitle.Text = "日付"
          .Axes(xlValue, xlPrimary).HasTitle = True
          .Axes(xlValue, xlPrimary).AxisTitle.Text = "血圧"

          '凡例の表示
          .HasLegend = True
          .Legend.Position = xlLegendPositionBottom

          '日付軸の書式設定
          .Axes(xlCategory).TickLabels.NumberFormatLocal = "yyyy/mm/dd" '日付書式
          .Axes(xlCategory).TickLabelSpacing = 1 ' 目盛りの間隔 (必要に応じて調整)
      End With
  End With

  ' データの書き出し (グラフ作成用)
  With ws
    .Cells(1, 8).Value = "日付"
    .Cells(1, 9).Value = "最高血圧(最大)"
    .Cells(1, 10).Value = "最高血圧(最小)"
    .Cells(1, 11).Value = "最高血圧(平均)"
    .Cells(1, 12).Value = "最低血圧(最大)"
    .Cells(1, 13).Value = "最低血圧(最小)"
    .Cells(1, 14).Value = "最低血圧(平均)"

    For i = 0 To DateIndex
      .Cells(i + 2, 8).Value = DateArray(i)
      .Cells(i + 2, 9).Value = MaxSystolic(i)
      .Cells(i + 2, 10).Value = MinSystolic(i)
      .Cells(i + 2, 11).Value = AvgSystolic(i)
      .Cells(i + 2, 12).Value = MaxDiastolic(i)
      .Cells(i + 2, 13).Value = MinDiastolic(i)
      .Cells(i + 2, 14).Value = AvgDiastolic(i)
    Next i
  End With

  ' オブジェクトの解放
  Set fd = Nothing
  Set csvWb = Nothing
  Set csvWs = Nothing
  Set wb = Nothing
  Set ws = Nothing
  Set ChartObject = Nothing

  MsgBox "血圧データの取り込みとグラフ作成が完了しました。", vbInformation

End Sub
```

**コードの解説:**

1.  **変数の宣言:** 必要な変数を宣言します。
2.  **FileDialogの設定と表示:** `FileDialog`オブジェクトを使って、CSVファイルを選択させます。
3.  **CSVファイルの読み込み:** 選択されたCSVファイルをExcelブックとして開きます。
4.  **データのアペンド:** CSVファイルのデータを、開いているExcelシートの末尾に追記します。
5.  **CSVファイルのクローズ:** CSVファイルを閉じます。(保存はしません)
6.  **日付ごとの集計:**
    *   日付、最高血圧、最低血圧を格納する配列を用意します。
    *   シートのデータを1行ずつ読み込み、日付が変わるごとに、それまでの最高血圧/最低血圧の最大値、最小値、平均値を計算し、配列に格納します。
7.  **グラフの作成:**
    *   グラフを作成する前に、既存のグラフを削除します。
    *   `ChartObjects.Add`メソッドを使って、グラフオブジェクトを追加します。
    *   グラフの種類を折れ線グラフ (`xlLine`) に設定します。
    *   `SetSourceData`メソッドを使って、グラフの元となるデータを指定します。
        *   最高血圧、最低血圧の最大値、最小値、平均値をそれぞれ系列として追加し、日付をX軸に設定します。
    *   グラフのタイトル、軸ラベル、凡例などを設定します。
    *   日付軸の書式設定を行います。
8.  **データの書き出し:**
    *   グラフ作成に使用したデータを、シートに書き出します。(H列以降に書き出されます)
    *   これにより、グラフの元データを確認したり、修正したりすることが容易になります。
9.  **オブジェクトの解放:** 使用したオブジェクトを解放します。
10. **完了メッセージ:** 処理が完了したことをメッセージボックスで通知します。

**使用方法:**

1.  Excelを開き、VBE (Visual Basic Editor) を開きます (Alt + F11)。
2.  VBEで、挿入 -> 標準モジュールを選択します。
3.  表示されたコードウィンドウに上記のコードをコピー&ペーストします。
4.  Excelに戻り、マクロを実行します (表示 -> マクロ -> マクロの表示 -> `血圧データ取り込みとグラフ作成` を選択して実行)。
5.  ファイル選択ダイアログが表示されるので、CSVファイルを選択します。

**注意点:**

*   **日付の書式:** CSVファイルの日付の書式が、Excelで正しく認識される書式になっていることを確認してください。 もし書式が異なる場合は、`IsDate`関数でエラーとなるか、日付が正しく集計されません。必要に応じて、CSVインポート後に日付の列の書式設定を `yyyy/mm/dd`などに変更してください。
*   **シート名:**  `Set ws = wb.ActiveSheet` でアクティブシートを使用していますが、特定のシートを使用したい場合は、`Set ws = wb.Sheets("シート名")` のように変更してください。
*   **データ範囲:** データの最終行を正しく取得するために、空白行がないことを確認してください。
*   **エラー処理:** エラー処理を追加することで、より堅牢なコードにすることができます。例えば、CSVファイルが開けない場合や、データ形式が不正な場合のエラー処理を追加すると良いでしょう。
*   **グラフの位置とサイズ:** `ChartObjects.Add` の引数で、グラフの位置とサイズを調整できます。
*   **グラフの種類:** グラフの種類は `xlLine` (折れ線グラフ) に設定されていますが、必要に応じて `xlColumnClustered` (棒グラフ) などに変更できます。
*   **配列サイズ:**  `ReDim Preserve` を使うことで、配列のサイズを動的に変更していますが、CSVファイルのデータ量が非常に多い場合は、処理時間がかかる可能性があります。

**追加機能 (オプション):**

*   **日付範囲の指定:** グラフに表示する日付範囲を指定できるようにする。
*   **データのフィルタリング:** 特定の条件 (例: 最高血圧が180以上のデータのみ) でデータをフィルタリングしてグラフを作成する。
*   **グラフのカスタマイズ:** グラフの色、フォント、軸の表示などを細かくカスタマイズできるようにする。
*   **複数ファイルの選択:**  `fd.AllowMultiSelect = True` に変更することで、複数のCSVファイルを一度に選択できるようにする。

このコードはあくまで出発点です。必要に応じてカスタマイズして、あなたの用途に合ったVBAを作成してください。

関数名と変数名を日本語に変えて再出力してください

```vba
Sub 血圧データ取り込みとグラフ作成()

  Dim ファイルダイアログ As FileDialog
  Dim 選択されたファイル As Variant
  Dim ワークブック As Workbook, ワークシート As Worksheet
  Dim CSVワークブック As Workbook, CSVワークシート As Worksheet
  Dim 最終行 As Long
  Dim i As Long
  Dim 日付配列() As Date '日付を格納する配列
  Dim 最高血圧最大値() As Integer '最高血圧の最大値を格納する配列
  Dim 最高血圧最小値() As Integer '最高血圧の最小値を格納する配列
  Dim 最高血圧平均値() As Double '最高血圧の平均値を格納する配列
  Dim 最低血圧最大値() As Integer '最低血圧の最大値を格納する配列
  Dim 最低血圧最小値() As Integer '最低血圧の最小値を格納する配列
  Dim 最低血圧平均値() As Double '最低血圧の平均値を格納する配列
  Dim 日付インデックス As Long
  Dim データ行 As Long
  Dim 現在の日付 As Date
  Dim 最高血圧合計 As Integer
  Dim 最低血圧合計 As Integer
  Dim データ件数 As Integer
  Dim グラフオブジェクト As ChartObject

  'FileDialogオブジェクトの作成
  Set ファイルダイアログ = Application.FileDialog(msoFileDialogFilePicker)

  'FileDialogの設定
  With ファイルダイアログ
    .Title = "CSVファイルの選択"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "CSV Files", "*.csv"
  End With

  'FileDialogの表示と選択
  If ファイルダイアログ.Show = -1 Then
    選択されたファイル = ファイルダイアログ.SelectedItems(1)
  Else
    MsgBox "ファイルが選択されませんでした。", vbExclamation
    Exit Sub
  End If

  ' 現在開いているExcelブックを取得
  Set ワークブック = ThisWorkbook
  Set ワークシート = ワークブック.ActiveSheet 'アクティブシートを使用 (必要に応じてシート名を指定)

  ' CSVファイルを開く
  Set CSVワークブック = Workbooks.Open(選択されたファイル)
  Set CSVワークシート = CSVワークブック.Sheets(1) ' 最初のシートを使用

  ' データの最終行を取得
  最終行 = ワークシート.Cells(Rows.Count, "A").End(xlUp).Row

  ' タイトル行をコピー (すでにタイトル行がある場合はスキップ)
  If 最終行 = 1 And IsEmpty(ワークシート.Range("A1").Value) Then
    CSVワークシート.Rows(1).Copy ワークシート.Rows(1)
    最終行 = 1 'タイトル行を追加したので開始行を1にする
  End If

  ' CSVデータの貼り付け
  CSVワークシート.Range("A2", CSVワークシート.Cells(CSVワークシート.Rows.Count, "A").End(xlUp).EntireRow).Copy ワークシート.Cells(最終行 + 1, 1)

  ' CSVファイルを閉じる (保存するかどうかは状況に応じて変更)
  CSVワークブック.Close SaveChanges:=False

  '日付で集計するための配列の準備
  ReDim 日付配列(0 To 0)
  ReDim 最高血圧最大値(0 To 0)
  ReDim 最高血圧最小値(0 To 0)
  ReDim 最高血圧平均値(0 To 0)
  ReDim 最低血圧最大値(0 To 0)
  ReDim 最低血圧最小値(0 To 0)
  ReDim 最低血圧平均値(0 To 0)

  '初期化
  日付インデックス = -1
  現在のDate = 0 '日付の初期化
  データ行 = 2 'データの開始行
  最高血圧合計 = 0
  最低血圧合計 = 0
  データ件数 = 0

  'データの最終行を再取得
  最終行 = ワークシート.Cells(Rows.Count, "A").End(xlUp).Row

  'データ行をループして処理
  Do While データ行 <= 最終行
    '日付の取得
    If IsDate(ワークシート.Cells(データ行, "A").Value) Then
        '日付の比較 (日付のみを比較)
        If DateValue(ワークシート.Cells(データ行, "A").Value) <> 現在の日付 Then
            '新しい日付の場合
            If データ件数 > 0 Then
              '前の日付のデータを保存
              最高血圧平均値(日付インデックス) = 最高血圧合計 / データ件数
              最低血圧平均値(日付インデックス) = 最低血圧合計 / データ件数
            End If

            '新しい日付の初期化
            日付インデックス = 日付インデックス + 1
            ReDim Preserve 日付配列(0 To 日付インデックス)
            ReDim Preserve 最高血圧最大値(0 To 日付インデックス)
            ReDim Preserve 最高血圧最小値(0 To 日付インデックス)
            ReDim Preserve 最高血圧平均値(0 To 日付インデックス)
            ReDim Preserve 最低血圧最大値(0 To 日付インデックス)
            ReDim Preserve 最低血圧最小値(0 To 日付インデックス)
            ReDim Preserve 最低血圧平均値(0 To 日付インデックス)

            現在の日付 = DateValue(ワークシート.Cells(データ行, "A").Value)
            日付配列(日付インデックス) = 現在の日付
            最高血圧最大値(日付インデックス) = ワークシート.Cells(データ行, "C").Value
            最高血圧最小値(日付インデックス) = ワークシート.Cells(データ行, "C").Value
            最低血圧最大値(日付インデックス) = ワークシート.Cells(データ行, "D").Value
            最低血圧最小値(日付インデックス) = ワークシート.Cells(データ行, "D").Value
            最高血圧合計 = 0
            最低血圧合計 = 0
            データ件数 = 0
        End If

        'データの集計
        If ワークシート.Cells(データ行, "C").Value > 最高血圧最大値(日付インデックス) Then
            最高血圧最大値(日付インデックス) = ワークシート.Cells(データ行, "C").Value
        End If
        If ワークシート.Cells(データ行, "C").Value < 最高血圧最小値(日付インデックス) Then
            最高血圧最小値(日付インデックス) = ワークシート.Cells(データ行, "C").Value
        End If
        If ワークシート.Cells(データ行, "D").Value > 最低血圧最大値(日付インデックス) Then
            最低血圧最大値(日付インデックス) = ワークシート.Cells(データ行, "D").Value
        End If
        If ワークシート.Cells(データ行, "D").Value < 最低血圧最小値(日付インデックス) Then
            最低血圧最小値(日付インデックス) = ワークシート.Cells(データ行, "D").Value
        End If

        最高血圧合計 = 最高血圧合計 + ワークシート.Cells(データ行, "C").Value
        最低血圧合計 = 最低血圧合計 + ワークシート.Cells(データ行, "D").Value
        データ件数 = データ件数 + 1
    End If

    データ行 = データ行 + 1
  Loop

  '最終日のデータを保存
  If データ件数 > 0 Then
    最高血圧平均値(日付インデックス) = 最高血圧合計 / データ件数
    最低血圧平均値(日付インデックス) = 最低血圧合計 / データ件数
  End If

  'グラフ作成
  With ワークシート
      '既存のグラフを削除
      For Each グラフオブジェクト In .ChartObjects
        グラフオブジェクト.Delete
      Next グラフオブジェクト

      ' グラフデータの範囲を設定 (グラフの表示範囲を少し広げる)
      Dim グラフ範囲 As Range
      Set グラフ範囲 = .Range(.Cells(1, 8), .Cells(日付インデックス + 1, 14)) ' H1からN(日付数) + 1まで

      ' グラフの追加
      Set グラフオブジェクト = .ChartObjects.Add(Left:=.Cells(1, 8).Left, Top:=.Cells(1, 8).Top, Width:=600, Height:=400) ' グラフのサイズと位置を調整
      With グラフオブジェクト.Chart
          .ChartType = xlLine '折れ線グラフ
          .SetSourceData Source:=グラフ範囲

          '系列の追加とデータ設定
          .SeriesCollection.NewSeries
          .SeriesCollection(1).Name = "最高血圧(最大)"
          .SeriesCollection(1).Values = Application.WorksheetFunction.Transpose(最高血圧最大値)
          .SeriesCollection(1).XValues = Application.WorksheetFunction.Transpose(日付配列)

          .SeriesCollection.NewSeries
          .SeriesCollection(2).Name = "最高血圧(最小)"
          .SeriesCollection(2).Values = Application.WorksheetFunction.Transpose(最高血圧最小値)
          .SeriesCollection(2).XValues = Application.WorksheetFunction.Transpose(日付配列)

          .SeriesCollection.NewSeries
          .SeriesCollection(3).Name = "最高血圧(平均)"
          .SeriesCollection(3).Values = Application.WorksheetFunction.Transpose(最高血圧平均値)
          .SeriesCollection(3).XValues = Application.WorksheetFunction.Transpose(日付配列)

          .SeriesCollection.NewSeries
          .SeriesCollection(4).Name = "最低血圧(最大)"
          .SeriesCollection(4).Values = Application.WorksheetFunction.Transpose(最低血圧最大値)
          .SeriesCollection(4).XValues = Application.WorksheetFunction.Transpose(日付配列)

          .SeriesCollection.NewSeries
          .SeriesCollection(5).Name = "最低血圧(最小)"
          .SeriesCollection(5).Values = Application.WorksheetFunction.Transpose(最低血圧最小値)
          .SeriesCollection(5).XValues = Application.WorksheetFunction.Transpose(日付配列)

          .SeriesCollection.NewSeries
          .SeriesCollection(6).Name = "最低血圧(平均)"
          .SeriesCollection(6).Values = Application.WorksheetFunction.Transpose(最低血圧平均値)
          .SeriesCollection(6).XValues = Application.WorksheetFunction.Transpose(日付配列)

          'グラフタイトル
          .HasTitle = True
          .ChartTitle.Text = "血圧データ"

          '軸ラベル
          .Axes(xlCategory, xlPrimary).HasTitle = True
          .Axes(xlCategory, xlPrimary).AxisTitle.Text = "日付"
          .Axes(xlValue, xlPrimary).HasTitle = True
          .Axes(xlValue, xlPrimary).AxisTitle.Text = "血圧"

          '凡例の表示
          .HasLegend = True
          .Legend.Position = xlLegendPositionBottom

          '日付軸の書式設定
          .Axes(xlCategory).TickLabels.NumberFormatLocal = "yyyy/mm/dd" '日付書式
          .Axes(xlCategory).TickLabelSpacing = 1 ' 目盛りの間隔 (必要に応じて調整)
      End With
  End With

  ' データの書き出し (グラフ作成用)
  With ワークシート
    .Cells(1, 8).Value = "日付"
    .Cells(1, 9).Value = "最高血圧(最大)"
    .Cells(1, 10).Value = "最高血圧(最小)"
    .Cells(1, 11).Value = "最高血圧(平均)"
    .Cells(1, 12).Value = "最低血圧(最大)"
    .Cells(1, 13).Value = "最低血圧(最小)"
    .Cells(1, 14).Value = "最低血圧(平均)"

    For i = 0 To 日付インデックス
      .Cells(i + 2, 8).Value = 日付配列(i)
      .Cells(i + 2, 9).Value = 最高血圧最大値(i)
      .Cells(i + 2, 10).Value = 最高血圧最小値(i)
      .Cells(i + 2, 11).Value = 最高血圧平均値(i)
      .Cells(i + 2, 12).Value = 最低血圧最大値(i)
      .Cells(i + 2, 13).Value = 最低血圧最小値(i)
      .Cells(i + 2, 14).Value = 最低血圧平均値(i)
    Next i
  End With

  ' オブジェクトの解放
  Set ファイルダイアログ = Nothing
  Set CSVワークブック = Nothing
  Set CSVワークシート = Nothing
  Set ワークブック = Nothing
  Set ワークシート = Nothing
  Set グラフオブジェクト = Nothing

  MsgBox "血圧データの取り込みとグラフ作成が完了しました。", vbInformation

End Sub
```

**変更点:**

*   変数名と関数名を日本語に変更しました。

このコードは、変数名と関数名が日本語になっているだけで、機能は以前のコードと全く同じです。

コメント

タイトルとURLをコピーしました