- ベストアンサー
エクセルのマクロで外部データに相対参照
- エクセルのマクロで外部データを相対参照する方法について教えてください。
- 現在、エクセルのマクロで外部データを取り込むと絶対アドレスになってしまいます。相対参照する方法はありますか?
- エクセルのマクロで外部データの取り込みを相対参照する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
tanaka2030 さん、こんにちわ。 私の回答で "TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT" で "TEXT;" & ActiveWorkbook.Path & "\N1 (1).DAT" とファイル名の前に"\"を付けて下さい。 漏れていました。済みませんでした。 これでもまだエラーになるのならファイル名が合ってるか確認して下さい。
その他の回答 (2)
- R_Moon
- ベストアンサー率60% (9/15)
tanaka2030 さん、こんにちわ。 >"TEXT;C: … N1 (1).DAT" を "TEXT;N1 (1).DAT" に変えただけではエラーが出ます。 という事ですので、ご質問の相対参照(?)でのPATH取得の為に 絶対PATHの部分を置き換えれば良いのではないでしょうか。 "TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT" こんな感じではいかがですか?
お礼
回答ありがとうございます。変更しましたができません。下記プログラムのようにしましたがデバックすると一番下の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
- R_Moon
- ベストアンサー率60% (9/15)
tanaka2030 さん、こんにちわ。 ActiveWorkbook.Path で開いてるブックのパスを取得できますので ブックと同じフォルダに外部データを置けば いけそうですが、これではダメですか?
お礼
回答ありがとうございます。 質問に記載したプログラムのどこにActiveWorkbook.Pathを入れたらよいかわかりません。
お礼
できました!! 大変参考になりました。 ありがとうございました。