質問 |
||
| 質問者:mnakayoshi | excel vbaで今開いたばかりのファイルのパスを取得したい | |
|---|---|---|
困り度:
|
お世話になっております excelで「今開いたシート名までのパス」を取りたいのですが、方法がわかりません 現在 For FileNo = 1 To .FoundFiles.Count(あるフォルダの中にある) *************** For intNum = 1 To intSC(ファイルの中のシートを端から開いて作業する) *************** というようにfor nextであるファイルのあるシートを指定して作業するようになっています いったん、別のファイルを選択してからまたこの開いたシートに戻る必要があるため、この直前に開いたシートのパスが必要なのです 「ThisWorkbook.Path」などではコードが書いてあるファイルのパスになってしまいます どうか教えていただけると大変助かります 宜しくお願いします |
|
質問投稿日時:08/03/26 13:24 質問番号:3896104 |
||
回答良回答20pt |
|
| 回答者:onlyrom | .FoundFiles.Countを使える人が、 >Workbooks.Open "myBook.Path & " \ " & myBook.Name" こんな書き方をするとはちょと信じられませんが。。(^^;;; という突っ込みは置いといて。。 myBook.PathとかmyBook.Nameは変数ですので(定数ではない) ””で囲む必要はありません。 ¥ だけを囲みます。 Workbooks.Open myBook.Path & " \ " & myBook.Name もしこれでエラーがでるようでしたら、質問者のコードを全て提示してください。 その方が解決が早いでしょう。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| |
回答日時:08/03/26 20:12 回答番号:No.3 |
|
| この回答へのお礼 | ありがとうございました シートの選択もやっとなんとかできました もっとスマートな書き方があるだろうとは思いましたが とりあえず急ぎだったので今回はこれでよしとします すぐに対応していただき、またご指摘いただき大変ありがとうございました |
回答 |
|
| 回答者:onlyrom | >別のファイルを選択してから >またこの開いたシートに戻る必要があるため >この直前に開いたシートのパスが必要なのです この文言ではいくつか受け取り方がありますが、 それは無視して、パスの取得方法のための回答 ●のコードを追加する '----------------------------------------- ● Dim myBook As Workbook For FileNo = 1 To .FoundFiles.Count ● Set myBook = Workbooks.Open(.FoundFiles(FileNo)) For intNum = 1 To intSC ************ '------------------------------------------- 開いたブックのパス: myBook.Path 開いたブックのフルパス: myBook.Path & "\" & myBook.Name 開いたブックの選択: myBook.Select 但し、このオブジェクト変数myBookをどこで使用するかで、 宣言場所が違ってくるのは言うまでもありません。 以上。 |
|---|---|
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| |
回答日時:08/03/26 14:29 回答番号:No.2 |
|
| この回答へのお礼 | すいません Workbooks.Open "myBook.Path & " \ " & myBook.Name" とすると「型が一致していません」というエラーがでます 色々やってみたのですが、どうしてもできませんでした そしてそこからシートを指定する方法がわかりませんでした でも、ご回答いただきありがとうございました 理解が足りず申し訳ありません |
回答良回答10pt |
|
| 回答者:notnot | >別のファイルを選択してからまたこの開いたシートに戻る必要があるため、 ファイルオブジェクトないしシートオブジェクトを変数に保存しておけばいいのでは? パスは別に必要じゃないです。 |
|---|---|
| 種類:回答 どんな人:経験者 自信:自信あり |
|
| |
回答日時:08/03/26 13:55 回答番号:No.1 |
|
| この回答へのお礼 | すいません。 変数にいれるためのファイルオブジェクトないしシートオブジェクトの書き方が違っているらしくどうしてもできません ご回答いただきありがとうございました いただいたお答えを参考にもう少しオブジェクトについて調べてみたいと思います |