一回も披露したことのない豆知識

エクセルのマクロで外部データの取り込みをすると絶対アドレスになってしまいます。
HTMLのように相対参照したいのですが良い方法はありませんか。"TEXT;C: …  N1 (1).DAT" を "TEXT;N1 (1).DAT" に変えただけではエラーが出ます。

Sub dainyu1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;N1 (1).DAT" _
, Destination:=Range("B3"))
.Name = "N1(1)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.Preserv

A 回答 (3件)

tanaka2030 さん、こんにちわ。



私の回答で

"TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT"



"TEXT;" & ActiveWorkbook.Path & "\N1 (1).DAT"

とファイル名の前に"\"を付けて下さい。
漏れていました。済みませんでした。
これでもまだエラーになるのならファイル名が合ってるか確認して下さい。
    • good
    • 0
この回答へのお礼

できました!!
大変参考になりました。
ありがとうございました。

お礼日時:2004/09/24 09:29

tanaka2030 さん、こんにちわ。



>"TEXT;C: …  N1 (1).DAT" を "TEXT;N1 (1).DAT" に変えただけではエラーが出ます。

という事ですので、ご質問の相対参照(?)でのPATH取得の為に
絶対PATHの部分を置き換えれば良いのではないでしょうか。


"TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT"

こんな感じではいかがですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。変更しましたができません。下記プログラムのようにしましたがデバックすると一番下のRefresh…が黄色くなります。わかれば回答お願いします。

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT" _
, Destination:=Range("B3"))
.Name = "N1(1)"
.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 = 2
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileFixedColumnWidths = Array(6)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

お礼日時:2004/09/22 09:47

tanaka2030 さん、こんにちわ。



ActiveWorkbook.Path

で開いてるブックのパスを取得できますので
ブックと同じフォルダに外部データを置けば
いけそうですが、これではダメですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
質問に記載したプログラムのどこにActiveWorkbook.Pathを入れたらよいかわかりません。

お礼日時:2004/09/20 16:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!