- ベストアンサー
統合マクロでパスの取得方法
- 統合マクロを使用して、エリアごとのデータをまとめたい場合、ファイルのパスの問題があります。ファイル名が変更されたり、ユーザーによってパスが異なる場合にエラーが発生します。そこで、マクロに現在開いているファイルの名前とパスを取り込む方法を探しています。
- マクロを使用してエリアごとにデータをまとめる際、ファイルのパスの問題があります。現在のマクロはファイルのパスが固定されており、ファイル名の変更や異なるユーザーによるエラーが発生します。現在開いているファイルの名前とパスをマクロに取り込む方法を教えてください。
- 統合マクロを使用してエリアごとにデータをまとめる場合、ファイルのパスの問題があります。特定のファイル名やユーザーパスに依存しないように、現在開いているファイルの名前とパスをマクロに取り込む方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
回答2、myRangeです。 ●2つとも開いてない場合も書いときますね。 集計ファイル(マクロあり)、8期資料.xlsとも同じフォルダーに入れておく Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9", _ これは、 Dim myPath myPath = "'" & ThisWorkbook.Path & "\[8期資料.xls]" Selection.Consolidate Sources:=Array( _ myPath & "〇〇一般A'!R6C2:R64C9", _ 以上です。
その他の回答 (3)
- myRange
- ベストアンサー率71% (339/472)
>現在ファイルは1ファイルにまとめています。 この意味は、集計ブックはなく ブックは、8期資料.xls のひとつだけで、 マクロも8期資料.xlsにあるということですね。 で、あれば、パス名もブック名も不要です。 "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9" これは "〇〇一般A!R6C2:R64C9" となります。 【注意点】 >"〇〇一般A●'●!R6C2:R64C9" ●の間の、’(シングルクォーテション)は不要なので外すこと。 '------------------------------------------------------ 【回答2での反省点】 ●集計ブック と 8期資料.xls が同じブックの場合●、 "'[8期資料.xls]〇〇一般A'!R6C2:R64C9" と回答しましたが、これでも間違いではありませんが これは今回の条件と同じですから、今回の回答のように ブック名[8期資料.xls]を省略したものを提示すべきでした。 そうすれば再質問の必要はなかったですね。 申し訳ないことです。。(^^;;; 以上です。
お礼
myRange様 ありがとうございます。 同一ファイル内だとパス・ファイル名は必要無かったのですね 大変助かりました。 こんな遅い時間にご回答頂き大変感謝いたします。 本当に助かりました。ありがとうございます。
- myRange
- ベストアンサー率71% (339/472)
●集計ブック と 8期資料.xls が同じブックの場合 "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9" これは "'[8期資料.xls]〇〇一般A'!R6C2:R64C9" これでOKです。 ------------------------------------------------------ ●集計ブック と 8期資料.xls が別ブックで 2つとも開かれている場合は、上記と同じ書き方でOKです。 ------------------------------------------------------ ●集計ブック と 8期資料.xls が別ブックで 8期資料.xls が開かれていない場合は 2つとも同じフォルダーにいれ、 Thisworkbook.Pathなどで文字列を作成してやります。 もしこの場合であれば、再質問願います。 以上です。
お礼
ありがとうございます。 パスは記載しなくても動きました。 後はファイル名が変更された時の "'[8期資料.xls]〇〇一般A'!R6C2:R64C9"の ファイル名を取得する方法も分かれば助かります。
- rivoisu
- ベストアンサー率36% (97/264)
.Consolidateなんていうメソッドは使ったことが無いので勉強になりました。 さて質問のなかで「開いているファイル」とあるので Workbooksコレクションを For Each Next でなめまわしてThiswkrobook以外のブック名を取得しこれに”〇〇一般A'!R6C2:R64C9”を追加して文字列配列を作る その配列をSorceにする。 ということで解決しそうです。
お礼
myRange様 ありがとうございます。今後の参考になります。 現在ファイルは1ファイルにまとめています。 [8期資料.xls]の中のファイル名の取得をご教授いただけませんか 8期資料最終.xlsとか8期資料(1).xlsとかにすぐ変えられてしまうので テキスト開いて色々並べ替えていますが流し込むとXXXです。 もう少しなんですが・・・