Option Explecit ' Linux テキストファイルを読み込み、処理して、エクセル xlsx ファイルに出力する xlsm ファイルの操作シートマクロ ' 基本情報 Const SYSTEM_NAME As String = "XXXXXX" Const RANGE_INPUT_FILE_PATH As String = "C2" Const RANGE_OUTPUT_BOOK_PATH As String = "C3" Const RANGE_OUTPUT_SHEET_NAME As String = "C4" Const ROW_TARGET_CONFIG_TOP As Long = 2 COnst COL_TARGET_CONFIG_NO As Long = 1 COnst COL_TARGET_CONFIG_VALUE As Long = 2 Const LINE_INPUT_DATA As Integer = 3 'データ開始行 Const ROW_OUTPUT_TOP As Long = 2 '出力行トップ Const COL_OUTPUT_NO As Long 1 '出力列トップ Const COL_OUTPUT_ITEM01 As Long 2 '出力列 1 Const COL_OUTPUT_ITEM02 As Long 3 '出力列 2 '出力シートの初期化 Private Sub clearOutputSheet(aSheet As Worksheet) Dim row As Long row = ROW_OUTPUT_TOP Do Until aSheet.Cells(row, COL_OUTPUT_NO) = "" row = row + 1 Loop If row > ROW_OUTPUT_TOP Then aSheet.Rows(CStr( End If End Sub '実行ボタンクリック Private Sub bunRun01_Click() Dim sInputFilePath As String Dim sInputFileName As String Dim sOutputSheetName As String Dim sOutputBookPath As String Dim sOutputBookName As String Dim sOutputSheetName As String Dim rowTargetConfig As Long Dim lineInput As Integer Dim rowOutput As Long Dim bookOutput As Workbook Dim shtOutput As Worksheet Dim flgInputFileOpened As Boolean Dim flgOutputBookOpened As Boolean Dim sLines As String Dim arrayLines As Variant Dim errNo As Integer Dim errMsg As String ' フラグ初期化 flgInputFileOpened = False flgOutputBookOpened = False ' パラメータ取得 sInputFilePath = Me.Range(RANGE_INPUT_FILE_PATH).Text 'ディレクトリまで sOutputBookPath = Me.Range(RANGE_OUTPUT_BOOK_PATH).Text 'ファイル名まで込み sOutputSheetName = Me.Range(RANGE_OUTPUT_SHEET_NAME).Text 'シート名 ' パラメータ確認 If sInputFilePath = "" Then MsgBox "入力パスが未設定です。", vbCritical+vbOkOnly, SYSTEM_NAME Exxit Sub End If If sOutputBookPath = "" Then MsgBox "出力ブックが未設定です。", vbCritical+vbOkOnly, SYSTEM_NAME Exxit Sub End If If sOutputSheetName = "" Then MsgBox "出力シートが未設定です。", vbCritical+vbOkOnly, SYSTEM_NAME Exxit Sub End If '出力Book名(拡張子こみ) sOutputBookName = getFileName(sOutputBookPath) On Error Resume Next Set bookOutput = Workbooks(sOutputBookName) If bookOutput Is Nothing then Set bookPutput = Workbooks.Open(sOutputBookPath) If bookOutput Is Nothing then MsgBox "出力ブックの指定が不適切、または、ファイルが存在しません。", vbCritical+vbOkOnly, SYSTEM_NAME Exit Sub End If flgOutputBookOpened = True End If Set shtOutput = bookOutput.Worksheets(sOutputSheetName) If shtOutput Is Nothing then If flgOutputBookOpened Then bookOutput.Close SaveChanges:=True flgOutputBookOpened = False End If MsgBox "出力シートの指定が不適切、または、シートが存在しません。", vbCritical+vbOkOnly, SYSTEM_NAME Exit Sub End If On Error GoTo btnRun01_Click_Eror Application.ScreenUpdating = False rowTargetConfig = ROW_TARGET_CONFIG_TOP rowOutput = ROW_OUTPUT_TOP Do Until shtTargetConfig.Cells(rowTargetConfig, COL_TARGET_CONFIG_NO).Text = "" 'ターゲット設定情報から、入力ファイル名を生成 sInputFileName = "・・・" '入力ファイル読み込み Open sInputFilePath & "\" & sInputFileName For Input As #10 flgInputFileOpened = True Line Input #10, sLines Close #10 flgInputFileOpened = False '入力ファイルデータを改行で分割(Linnux テキストファイル) arrayLines = Split(sLines, vbLf) '入力ファイルごとの処理 shtOutput.Cells(rowOutput, COL_OUTPUT_NO).Value = ・・・ shtOutput.Cells(rowOutput, COL_OUTPUT_ITEM01).Value = ・・・ shtOutput.Cells(rowOutput, COL_OUTPUT_ITEM02).Value = ・・・ rowTargetConfig = rowTargetConfig + 1 rowOutput = rowOutput + 1 Loop ' 後処理 If flgOutputBookOpened Then bookOutput.Close SaveChanges:=True flgOutputBookOpened = False End If Application.ScreenUpdating = True MsgBox "正常終了", vbInformation+vbOkOnly, SYSTEM_NAME btnRun01_Click_Exit: Exit Sub btnRun01_Click_Eror: errNo = err.Number errMsg = err.Description ' 後処理 If flgInputFileOpened Then Close #10 flgInputFileOpened = False End If If flgOutputBookOpened Then bookOutput.Close SaveChanges:=False flgOutputBookOpened = False End If ' 表示 Application.ScreenUpdating = True MsgBox CStr(errNo) & ": " & errMsg, vbCritical+vbOkOnly, SYSTEM_NAME Resume btnRun01_Click_Exit End Sub