Private Sub CmdExecute_Click()
'
On Error GoTo Err_Handle
'------------------- Excel起動 ----------
Call ExcelInit
Dim ExBk As Workbook: Dim ExSt As Worksheet
Set ExBk = ExcelApp.ActiveWorkbook: Set ExSt = ExcelApp.ActiveSheet
'------------------- 文字列を取得 ----------
Dim strAddStr As String
strAddStr = frmEditSpName.TxtString.Text
If strAddStr = "" Then
MsgBox "文字列が空", vbCritical + vbMsgBoxSetForeground, Me.Caption
Exit Sub
End If
'------------------- セル文字列を取得 ----------
Dim i As Long: Dim j As Long: Dim k As Long
Dim strBuff As String
Dim strArray() As String
Dim lngRow As Long
strBuff = ExcelApp.ActiveWindow.RangeSelection.Address
strArray = Split(strBuff, ",")
ReDim strCell(ExcelApp.ActiveWindow.RangeSelection.Count) As String
'選択したC列の文字列(打点名)を配列に代入
k = 0
For i = 0 To UBound(strArray)
'Error Processing
If ExSt.Range(strArray(i)).Columns.Count <> 1 Or ExSt.Range(strArray(i)).Column <> 3 Then
MsgBox "打点名の列を以外を指定", vbCritical + vbMsgBoxSetForeground, Me.Caption
Exit Sub
End If
'開始行
lngRow = ExSt.Range(strArray(i)).Row
For j = 0 To ExSt.Range(strArray(i)).Rows.Count - 1
strCell(k) = ExSt.Cells(lngRow + j, 3).Value
'Debug.Print strCell(k)
k = k + 1
Next j
Next i
'------------------- 選択したC列のセルに入力 ----------
k = 0
For i = 0 To UBound(strArray)
'開始行
lngRow = ExSt.Range(strArray(i)).Row
For j = 0 To ExSt.Range(strArray(i)).Rows.Count - 1
ExSt.Cells(lngRow + j, 3).Value = strCell(k) + strAddStr
'Debug.Print strCell(k)
k = k + 1
Next j
Next i
MsgBox "終了", vbInformation + vbMsgBoxSetForeground, Me.Caption
'Excel解放
Set ExcelApp = Nothing
Exit Sub
Err_Handle:
'Excel解放
Set ExcelApp = Nothing
MsgBox Err.Source & vbCr & Err.Description, vbCritical
End Sub