2013年10月30日水曜日

excel VBAでwordファイルを開く

excel VBAであるボタンを押したら、
デスクトップにあるwordファイルを開く、
そのときに二重に開かないようにする
っていうコードを書いたので、
忘れないうちにまとめとく。

デスクトップにtest.docを用意しておく。

6行目、まず変数に開きたいファイルのパスを代入。
今回はデスクトップにあるtest.docを開きたい。

8行目、起こったエラーによって処理を変えるので、
エラーが起こっても処理が止まらないようにする。

10~14行目、wordが起動しているかをgetobject関数で調べる。
起動していれば、エラー番号0
起動していなければ、エラー番号429
起動していないときには、createobject関数でwordを起動させる。
getobjectを使わずに、createobjectを使うと、
毎回毎回新しくwordが起動して、無駄。

16行目、ここで一旦エラーをクリアにする。

18行目~25行目、次に開きたいファイルの名前を上書きする。
C:\Users\ユーザー名\Desktop\test.docをC:\Users\ユーザー名\Desktop\test.docで。
このときに既にファイルを開いている場合には、
名前の変更ができずに、エラー番号75。
開いてない場合には、名前の変更ができて、エラー番号0。

29行目、最後にオブジェクトへの参照を解除する。

これをボタンなりなんなりにマクロの登録をしていれば、
それをクリックすることで、指定したwordファイルが開けます。

ネットで検索しても、なかなか解決策出てこず、
あーだこーだ言いながら、作ってみました。
誰かの助けになればいいな。

0 件のコメント:

コメントを投稿