« 2023年6月 | トップページ | 2023年10月 »

2023年7月の記事

2023年7月 1日 (土)

Excelの外部リンク(外部参照)について調べてみた(その2)

2022年1月の記事「Excelの外部リンク(外部参照)について調べてみた(その1)」で、Excelの外部リンクの挙動について調べた結果を書いたが、その後の調査で、その記事で記載した「外部リンクを含むExcelファイルやそのフォルダをコピーした場合の挙動」に一部間違いがあったことが判ったため、本記事ではコピー時の挙動のみを再整理して記載する。
外部リンクに関する、コピー以外の説明については、前回の記事を参照していただきたい。

外部リンクとは、他のExcelファイルのセルを参照することで、セルには以下のような計算式が表示される。

 ='G:\Excel_test\基準フォルダ\サブフォルダ\[ファイル名.xlsx]Sheet1'!$A$1

 
本記事で用いる用語については、前記事と同様に以下に統一する。

【用語について】

  • 本記事ではExcelファイルしか現れないため、ブックと呼ばず全てファイルに統一する。
  • ファイルAの中にファイルBを参照する式を記載していた場合、
    私の感覚では、「ファイルAがリンク元、ファイルBがリンク先」なのだが、Excelの用語では、ファイルBをリンク元と呼んでいるので、本記事の記載もそれに合わせる。一方、ファイルAを本記事では「基準ファイル」と記す。

 
まずは、Exceの内部で外部リンクがどのような形で記録されているかを説明する。
記録方式は以下の2形式があり、どちらで記録されるかは以下のルールで自動的に決定される。(ユーザは選択できない。)

  1. リンク元ファイルが、基準ファイルが存在するフォルダ(以下、基準フォルダと記載)の配下にある場合は相対パスで記録される。具体的には、基準フォルダと同一フォルダ内や、サブフォルダや更にその下階層内にある場合である。
    相対パスとは、基準フォルダからの相対的なパスのことで、例えば下図の「リンク元_サブフォルダ.xlsx」は ".\サブフォルダ\リンク元_サブフォルダ.xlsx" となる。
  2. 上記以外の場合、絶対パスで記録される。
    絶対パスとは、ドライブ名を含む完全なパスのことで、例えば下図の「リンク元_サブフォルダ.xlsx」は "G:\Excel_test\リンク元_サブフォルダ.xlsx" となる。

【相対パスと絶対パス】
 Excel_202307_001

これらのファイルを含むフォルダをコピーまたは移動した場合に、外部リンクがどのように変わる/変わらないのかを記載したのが以下の表である。(一部の挙動が、Excel365とExcel2016で違うようだ。)

コピー元と
コピー先の関係
記録形式 コピーされた基準ファイル内の外部リンクが指すファイル
同じドライブ内 相対パス コピーされたリンク元ファイルを指す。
絶対パス コピー前と同じファイルを指す。
異なるドライブ 相対パス コピーされたリンク元ファイルを指す。
絶対パス Excel365の場合
コピー前と同じファイルを指す。(ドライブレターは変わらない。)
ただし、コピー元とコピー先がドライブ違いだけの全く同じパスであればドライブレターがコピー先のものに書き換わる。その結果、コピーされたリンク元ファイルを指す。
Excel2016の場合
パスはそのままでドライブレターのみが機械的にコピー先のものに書き換わる。その結果、通常は存在しないファイルを指すことになる。

言葉だけでは判りにくいので以下の図も合わせて参照いただきたい。

【Excel365:一般のケース】
 Excel_202307_002

【Excel365:コピー元とコピー先がドライブ違いだけの全く同じパスのケース】
 Excel_202307_003

【Excel2016】
 Excel_202307_004

なお、フォルダを移動した場合の挙動もコピーの場合と同じである。

では。

| | コメント (0)

« 2023年6月 | トップページ | 2023年10月 »