Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11585 / 13645 ツリー ←次へ | 前へ→

【15263】ブックが開いているかどうか くんくん 04/6/18(金) 12:18 質問[未読]
【15264】Re:ブックが開いているかどうか ちゃっぴ 04/6/18(金) 12:28 回答[未読]
【15265】Re:ブックが開いているかどうか くんくん 04/6/18(金) 13:08 質問[未読]
【15266】Re:ブックが開いているかどうか ちゃっぴ 04/6/18(金) 13:13 回答[未読]
【15267】Re:ブックが開いているかどうか くんくん 04/6/18(金) 13:21 お礼[未読]
【15269】Re:ブックが開いているかどうか ちゃっぴ 04/6/18(金) 13:25 回答[未読]
【15277】Re:ブックが開いているかどうか ウシロメタさ 04/6/18(金) 17:31 発言[未読]
【15268】Re:ブックが開いているかどうか ちゃっぴ 04/6/18(金) 13:21 回答[未読]
【15271】Re:ブックが開いているかどうか Jaka 04/6/18(金) 14:18 回答[未読]
【15278】大変参考になりました くんくん 04/6/18(金) 17:39 お礼[未読]
【15313】間違えてました。 Jaka 04/6/21(月) 9:14 発言[未読]

【15263】ブックが開いているかどうか
質問  くんくん  - 04/6/18(金) 12:18 -

引用なし
パスワード
   昨日、しつこく「ブックを開く」ことで質問したくんくんです。
ブックを開くことはどうにか、できました。
ブックが開いているかどうかを知るには、どう記述したらいいのでしょうか?
指定のブックが開いているときは、開かない、開いていなかったら開く
という記述をしたいです。
IFから始まるんだろうな?としか分かりません。
初歩的な質問です。

【15264】Re:ブックが開いているかどうか
回答  ちゃっぴ  - 04/6/18(金) 12:28 -

引用なし
パスワード
   2とおりの方法をあげます。

1. WorkbooksをFor Each 〜 Nextでループ
  Nameプロパティに指定のブックがあるかで条件分岐

2. Workbooks("ブック名")をしてして、
  エラーになったらエラートラップ(On Error Goto)

【15265】Re:ブックが開いているかどうか
質問  くんくん  - 04/6/18(金) 13:08 -

引用なし
パスワード
   ▼ちゃっぴ さん:
>2とおりの方法をあげます。
>
>1. WorkbooksをFor Each 〜 Nextでループ
>  Nameプロパティに指定のブックがあるかで条件分岐
>
>2. Workbooks("ブック名")をしてして、
>  エラーになったらエラートラップ(On Error Goto)

ちゃっぴさん、今日もすいません。ど素人のくんくんです。
自分なりに考えてみました。

1.→For Each 〜 Next は、コレクションに対して使うんですよね。
  自分では、そこまでしかわかりません。

2.→記述してみました。
  Wrokbooks.Open Filename:=("ブック名".xls")
  On Error Go To HIRAKU
  Exit Sub
  HIRAKU:
  WorkBooks.Open Filename:=("ブック名".xls")
あたってますか?

【15266】Re:ブックが開いているかどうか
回答  ちゃっぴ  - 04/6/18(金) 13:13 -

引用なし
パスワード
   1. こんな感じです。

Dim wbkTarget As Workbook

For Each wbkTarget In Workbooks
  If wbkTarget.Name = "ブック名" Then
    MsgBox "開いてますよ!"
  End If
Next

2. は大体あってます。

エラーになる箇所を越えたら後始末しましょう。
On Error Goto 0

【15267】Re:ブックが開いているかどうか
お礼  くんくん  - 04/6/18(金) 13:21 -

引用なし
パスワード
   ちゃっぴさん。早速の回答をありがとうござます。
しっかり印刷しました。
参考にして試してみます。
これで、仕事の能率がアップします。
素朴な疑問ですが、どうすれば、VBAを使いこなすことが
できるようになりますか?
私の周りで、VBAを知っている人がいないので、
聞くにもきけません。
エクセルマクロの自動記述も知っている人がいないぐらいです。

【15268】Re:ブックが開いているかどうか
回答  ちゃっぴ  - 04/6/18(金) 13:21 -

引用なし
パスワード
   おおっと、ダブルコーテーションが一個余計ですよ。

> Wrokbooks.Open Filename:=("ブック名".xls")
Wrokbooks.Open Filename:=("ブック名.xls")

気づいていたら(*_ _)人ゴメンナサイ

【15269】Re:ブックが開いているかどうか
回答  ちゃっぴ  - 04/6/18(金) 13:25 -

引用なし
パスワード
   >素朴な疑問ですが、どうすれば、VBAを使いこなすことが
>できるようになりますか?

とりあえず私の場合ですが・・・
まず、入門書を数冊かって勉強しました。
基本(文法)はこれで理解できると思います。
後は、マクロ記録を参考に、ひたすらヘルプを読みまくりました。

ここで質問するのもいいですけど、わからないことを
必ずヘルプで調べて見ることが大事だと思います。

一つのメソッド、プロパティ、オブジェクトでも
いろいろな使い方があります。
また、普段使わないような引数を発見したりしますので・・・

【15271】Re:ブックが開いているかどうか
回答  Jaka  - 04/6/18(金) 14:18 -

引用なし
パスワード
   Dim WBK As Workbook
On Error Resume Next
Set WBK = Workbooks("ブック名.xls")
WBK = Nothing
If Err Then
  MsgBox "開いてない。"
Else
  MsgBox "開いてる。"
End If
On Error GoTo 0

【15277】Re:ブックが開いているかどうか
発言  ウシロメタさ  - 04/6/18(金) 17:31 -

引用なし
パスワード
   >素朴な疑問ですが、どうすれば、VBAを使いこなすことが
>できるようになりますか?

ワタシの場合、やはり本をいっぱい買いあさり
ひたすら勉強、んでもって他人のコードを拝借し、
自分用に書き換える、更にここで質問ですね
基本をわかっているようで意外にわかっていない
ワタシですが、多くのコードを見てくるうちに
意外に応用力がついたと自分では思っています

ワタシと同じステップかと思います
がんばりましょうね

【15278】大変参考になりました
お礼  くんくん  - 04/6/18(金) 17:39 -

引用なし
パスワード
   みなさま、いろんな回答を本当にどうもありがとうございます。
VBAって自分の思ったとおりの動作をすると、
とてもうれしいです。やったー!ってね。
親切な回答をくださる皆様もいることだし、
がんばってみようと思います。

【15313】間違えてました。
発言  Jaka  - 04/6/21(月) 9:14 -

引用なし
パスワード
   こうでしたね。
すみません。

>Set WBK = Workbooks("ブック名.xls")
>WBK = Nothing
 ↓
Set WBK = Nothing

11585 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free