エクセルに以下の機能を持つ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
```
**変更点:**
* 変数名と関数名を日本語に変更しました。
このコードは、変数名と関数名が日本語になっているだけで、機能は以前のコードと全く同じです。
コメント