ワークブックファイルが常にCSVファイルと同じフォルダにある場合は、ActiveWorkbook.Pathメソッドを使用して相対パスを設定できます。
例csvファイル名と接続名が同じであると仮定すると:
Sub refreshMsgConnection()
Dim csvFileName As String
csvFileName = "msg_by_weeks.csv"
Dim filePath As String
filePath = ActiveWorkbook.path
Dim conString As String
conString = "TEXT;" & filePath & "\" & csvFileName
With ActiveWorkbook.Connections("msg_by_weeks").Ranges.Item(1).QueryTable
.connection = conString
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.TextFilePromptOnRefresh = False
.Refresh BackgroundQuery:=False
End With
End Sub
あなたは問題が発生した場合など、区切り文字としてご使用の構成に基づいて設定の一部でプレイする必要があり、記録あなたが望むフォーマットで新しい接続をセットアップして、このサブの設定をコピーしている間は、マクロ。
ファイルが見つからない場合は、ユーザーが目的のファイルを見つけるためのファイル選択ボックスが表示されます。
最後に、これを試してみると、1004エラーが発生します。デバッグに行くと、私はこの行を指しています。 ActiveWorkbook.Connections( "msg_by_weeks")。Ranges.Item(1).QueryTable –