Sub ThisWorkbookPathSample()
Dim sPath
sPath = ThisWorkbook.Path & "\piyo.xlsm"
Workbooks.Open Filename:=sPath
End Sub
Sub FullPathSample()
Dim sPath
sPath = "C:\hoge\piyo.xlsm"
Workbooks.Open Filename:=sPath
End Sub
C\hoge\mokyu にある uni.xlsm を開くなら、以下。
Sub ThisWorkbookPathSample()
Dim sPath
sPath = ThisWorkbook.Path & "\mokyu\uni.xlsm"
Workbooks.Open Filename:=sPath
End Sub
Sub FullPathSample()
Dim sPath
sPath = "C:\hoge\mokyu\uni.xlsm"
Workbooks.Open Filename:=sPath
End Sub
小川 慶一さんの投稿
(投稿ID: 3860)
おお、がんばりましたね!
> [A] 転記元ファイルにマクロを書く場合
ひとつの転記元ファイルから複数の転記先ファイルにデータを転記するとにはこれで良いでしょう。
> [B] 転記先ファイルにマクロを書く場合
複数のの転記元ファイルからひとつの転記先ファイルにデータを転記するときにはこれで良いでしょう。
> [C] ネット、マクロを記入するだけのファイルを作り、そのファイルにマクロを書く場合。
↑
すいません。「ネット」は、「別途」の誤記でした。
複数の転記元ファイルから複数の転記先ファイルにデータを転記するとにはこれが最善でしょう。
> についてのメリットはアクティブになっていることで書いたマクロの
> 実行がその場で確認できる事。
↑
これは、メリットとは言えません。
テストをするプログラマーの都合でしかないので、きちんと動作するようになったらどうでもいい問題です。
> デメリットはファイルが他の人に開かれていると操作できない。
> デメリットは 転記元、転記先のファイルが開かれている場合は処理ができないので誰も転記元のファイルを開いていない状態でマクロを起動させる必要があると思います。
↑
これは[A]、[B]、[C]のいずれでも起きる問題です。
基礎編レベルの段階では、実運用でカバーですね。つまり、Excelマクロで制御するのではなく、利用者に通知するこのマクロの仕様方法についての注意事項として取り扱います。
> > Thisworkbook.Path について調べてみてください。
> 調べてみました。
例えばCドライブにhogeというフォルダがあるとします。
フォルダのパスは C\hoge です。
ここに、fuga.xlsmというファイルがあるとします。
このfuga.xlsmというファイルが、piyo.xlsmというファイルを開くとします。
その時、Thiswork.Pathを使ってマクロ書く場合と、ファイルのパスをフルパスで指定する場合との比較を以下に示します。
以下でどうでしょうか。
C\hoge\mokyu にある uni.xlsm を開くなら、以下。
> 現在の業務ではLEFT関数やInstr関数を使うような業務はありません。
> それぞれの方が受けたお客様からの問い合わせについて記入しているファイルを読みに行って、一つのファイルに必要な情報だけを転記するといった内容です。そのため、フォローアップまで受講していますが実務に使えているのはIF文とFor Next構文で転記していくところぐらいです。
> この先の中級編でそのような勉強はありますか?
基礎編フォローアップの後半に、まさにそんな内容のものがありますが…。これでは足りないでしょうか?
動画24以降。
https://forum.pc5bai.com/lesson/page/871