• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで外部データに相対参照)

エクセルのマクロで外部データに相対参照

このQ&Aのポイント
  • エクセルのマクロで外部データを相対参照する方法について教えてください。
  • 現在、エクセルのマクロで外部データを取り込むと絶対アドレスになってしまいます。相対参照する方法はありますか?
  • エクセルのマクロで外部データの取り込みを相対参照する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • R_Moon
  • ベストアンサー率60% (9/15)
回答No.3

tanaka2030 さん、こんにちわ。 私の回答で "TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT" で "TEXT;" & ActiveWorkbook.Path & "\N1 (1).DAT" とファイル名の前に"\"を付けて下さい。 漏れていました。済みませんでした。 これでもまだエラーになるのならファイル名が合ってるか確認して下さい。

tanaka2030
質問者

お礼

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

その他の回答 (2)

  • R_Moon
  • ベストアンサー率60% (9/15)
回答No.2

tanaka2030 さん、こんにちわ。 >"TEXT;C: …  N1 (1).DAT" を "TEXT;N1 (1).DAT" に変えただけではエラーが出ます。 という事ですので、ご質問の相対参照(?)でのPATH取得の為に 絶対PATHの部分を置き換えれば良いのではないでしょうか。 "TEXT;" & ActiveWorkbook.Path & "N1 (1).DAT" こんな感じではいかがですか?

tanaka2030
質問者

お礼

回答ありがとうございます。変更しましたができません。下記プログラムのようにしましたがデバックすると一番下の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)
回答No.1

tanaka2030 さん、こんにちわ。 ActiveWorkbook.Path で開いてるブックのパスを取得できますので ブックと同じフォルダに外部データを置けば いけそうですが、これではダメですか?

tanaka2030
質問者

お礼

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

関連するQ&A