|
返信ありがとうございます。
csvファイルへの入力はフォーマットの決まったExcelファイルを開いたときに自動で読み込むようにしないといけません。
それで返信のあったように外部データ取り込みでやるとうまくいきました。
この外部取り込みをマクロでやろうとしています。
外部取り込みをマクロで登録して、ファイルを読む場所を変更しようとしたのですが、アプリケーション定義またはオブジェクトの定義エラーがでてしまいます。
よろしくお願いします。
ちなみにExcelは2002です。
マクロ修正前↓
fname2 = ActiveWorkbook.Path & "\" & csv2
'CSVファイルの内容を貼り付ける(ボディ部)
fno = FreeFile
On Error GoTo file_not_found
Open fname2 For Input As #fno
On Error GoTo 0
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\****\My Documents\マスタ出力\ボディ部.csv", _
Destination:=Range("B5")) '↑ここのパスを直でなく変数にしたい
.Name = "ボディ部"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
修正後マクロ↓
With ActiveSheet.QueryTables.Add(Connection:= _
fname2, Destination:=Range("B5")) '←ここを修正したい。
.Name = "ボディ部"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
|
|