Page 39 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼WorkbookOpenのVBA記述について つぼ 02/9/3(火) 21:57 ┗Re:WorkbookOpenのVBA記述について コロスケ 02/9/3(火) 22:05 ┗LAN経由でマクロの記録 つぼ 02/9/4(水) 8:45 ┗Re:LAN経由でマクロの記録 yu-ji 02/9/4(水) 9:39 ┣Re:LAN経由でマクロの記録 つぼ 02/9/5(木) 15:54 ┃ ┗Re:LAN経由でマクロの記録 コロスケ 02/9/5(木) 16:55 ┃ ┗Re:LAN経由でマクロの記録 つぼ 02/9/5(木) 19:28 ┗Re:LAN経由でマクロの記録 つぼ 02/9/5(木) 19:37 ─────────────────────────────────────── ■題名 : WorkbookOpenのVBA記述について ■名前 : つぼ ■日付 : 02/9/3(火) 21:57 -------------------------------------------------------------------------
事務所内にラン接続されたPCが数台ありまして、1台のPCでWorkbookOpenをVBA記述 (Subプロシャージャーの記述例) Sub 大型車両() Workbooks.Open FileName:="D:\各種台帳\車輌台帳\東営業所\けん引き車.xls" Sheets("台帳").Select Range("F2").Select End Sub 上記の記述で作成したPCでは作動するのですが、ラン接続したその他のPCで操作するとデバッグエラーとなりFile Open出来ないのですが良いアドバイスをお願いします。 (ちなみにFileを収納したホルダーは共有してあります。) |
▼つぼ さん: > (ちなみにFileを収納したホルダーは共有してあります。) 操作をするPCによって、パスが違っていることが原因です。 試しに、LAN経由でマクロの記録を行ってみてください。 共有フォルダの部分を含めたフルパスが記録されるはずです。 ではー♪ |
▼コロスケ さん: 早速、有難うございます。最近VBAを勉強し始めたばかりでわからない事ばかりですが、LAN経由でマクロの記録の記述はどのようにしたら良いのでしょうか。 |
▼つぼ さん: >>>(ちなみにFileを収納したホルダーは共有してあります。) >早速、有難うございます。最近VBAを勉強し始めたばかりでわからない事 >ばかりですが、LAN経由でマクロの記録の記述はどのようにしたら良いのでしょうか。 コロスケさんの言われていたのは、 LAN経由でマクロの記録=他のPCで、共有してあるフォルダのファイルを開く マクロの記録 という意味だと思います。 で、それを試してみると >>>Workbooks.Open FileName:="D:\各種台帳\車輌台帳\東営業所\けん引き車.xls" この一行が書き換わると思います。 ちなみに、なんでこの行がエラーかというと。 存在しないDドライブのフォルダにある"けん引き車.xls"を開こうと してるけど、ファイルやフォルダがないというエラーだと思います。 ”D:〜”と書くと、例えそのフォルダがあるPCでは共有されていたとしても、 現在、プログラムを実行させているPCのDドライブのフォルダをチェックしようと します。なので、他のPCからそのPCの中にあるフォルダという指定をする 必要があります。 そこで、コロスケさんの書かれた方法でやると、その指定の方法が簡単に分かる というわけです。 |
>そこで、コロスケさんの書かれた方法でやると、その指定の方法が簡単に分かる >というわけです。 yu-ji さん、有難うございます。yu-ji さん コロスケさんの言われるとおり色々と、自動マクロ作成やLAN先のPCのプロシャージャーに元PCのパスを記述してみたのですがうまく動いてくれません。 LAN経由でマクロの記録方法はどのようにいたらよいのでしょうか、教えていただけませんか。(元データのPCパスは、K80410007 なのですが) |
▼つぼ さん:こんにちは。 ネットワーク上での使用を前提としてパスを書くときはちょっとした配慮が必要になります。 理由の説明はyu-jiさんが丁寧に書いていただいているので、実際の方法というか、簡単な例だけを書きます。 えーっと、「キテレツ」というPCと「コロスケ」という2台のPCがあるとします。 1.「キテレツ」PCを使い、予め共有設定してある「キテレツ」PCの MY DOCUMENTS のなかのBook1.xlsを 開くコードを自動記録しました。すると下記のようなコードができます。 '----------------------------------------------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' Macro recorded 9/5/2002 by Colo ' Workbooks.Open Filename:= _ "C:\Documents and Settings\Administrator\My Documents\Book1.xls" End Sub '----------------------------------------------------------------------------------------------- 2.このブックに名前をつけて共有設定してある「キテレツ」PCの MY DOCUMENTSに保存しました。 このブックを「キテレツ」PCから開いて、マクロを実行するとすんなりと共有フォルダのBook1.xlsが開きます。 でも、「コロスケ」PCのマイネットワークやネットワークコンピュータから「キテレツ」PCの共有フォルダのBook1.xls を見つけて開いた場合、このマクロは上手く動きません。 ※仮に偶然エラーがでなかったとしても、「コロスケ」PCのMy DocumentsのBook1.xlsが開くだけです。 これが つぼ さんのご質問された時点での状態です。 さて、次の手順で試してみてください。 1.「コロスケ」PCで新規ブックを作成し、マクロの記録を開始してください。 2.ファイルを開くメニューからネットワークをたどり、「キテレツ」PCの共有フォルダのBook1.xlsを開きます。 3.マクロの記録を停止します。 さあ、コードを見てください。多分下記のようなコードが出来上がっていると思います。 上のコードと違うのは\\コンピュータ名\共有フォルダ名\ファイル名になっている点です。 '----------------------------------------------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' Macro recorded 9/5/2002 by Colo ' ' ChDir "\\キテレツ\MY DOCUMENTS" Workbooks.Open Filename:="\\キテレツ\MY DOCUMENTS\Book1.xls" End Sub '----------------------------------------------------------------------------------------------- 4.このブックを「キテレツ」PCの共有フォルダに保存してみてください。 「キテレツ」PC、「コロスケ」PC どちらからもマクロが実行できるはずです。 この様にパスの前にコンピュータ名を書いてやる必要があります。色々と試してみてくださいね。 ではー♪ |
▼コロスケ さん: >▼つぼ さん:こんにちは。 >ネットワーク上での使用を前提としてパスを書くときはちょっとした配慮が必要になります。 >理由の説明はyu-jiさんが丁寧に書いていただいているので、実際の方法というか、簡単な例だけを書きます。 ▼コロスケ さん有難うございました、本当に助かりました。 最近、VBA初級の通信講座を勉強しまして、今までは単にExce lFileの中で関数操作しか出来なかったのが、Exce lFileでのVBA操作を知り今それにはまっているところです。 なかなか難しくて今回のような事も、本当に丁寧に回答していただいたにも関わらず理解するのに手間がかかる次第です。 今回は、社内に所有する車両が数多くあるため車種別に何とか管理できないものかと車両管理ファイルを自作で作成したのですが、つまずいてしまいました。 (あくまでも職務上の個人管理ファイルですが) 本当に有難うございました。 |
▼yu-ji さん: >そこで、コロスケさんの書かれた方法でやると、その指定の方法が簡単に分かる >というわけです。 yu-ji さん 本当に丁寧に教えていただき有難うございました。 VBAもまだまだ覚えたてですので本当に助かりました。 このような簡単な事もすぐに理解できないくらいですから、まだまだ勉強しなくてはいけないと思っています。でも一層VBAのはまってしまいそうです。 本当に有難うございました。 |