|
おはようございます。
横から失礼しあmす。
>Public Sub Excel_macro()
> Dim obExcel As Object 'Excelオブジェクト
> Dim lBookNumber As Long 'ブック数カウント
> Dim wkbbuff As Workbook 'バッファ
>
>10
> 'ブック数カウントを初期化する
> lBookNumber = 0
> 'ワークブック数分ループする
> For Each wkbbuff In Workbooks
> '他のブックの名前が取得できる場合(他のブックがオープンできる場合)
> If Application.Windows(wkbbuff.Name).Visible = True Then '★
> 'ブック数カウンタをインクリメントする
> lBookNumber = lBookNumber + 1
> End If
> Next wkbbuff
>20
> '他のブックが既に開かれている場合
> If lBookNumber > 1 Then
> '警告メッセージオフにする
> Application.DisplayAlerts = False
> 'アプリケーションをクローズする
> ActiveWorkbook.Close
> End If
>
> 'ワークブックを作成する
> Set wkbWorkBook = Workbooks.Add
↓ここが問題みたいですね?
ここを、コメントアウトして、Captionが「Book?」のままだと
2回目以降もエラーにならないですね。
どういう意図があるのかわからないですけど、
「テスト」という名前でファイル保存してしまえば、
エラーにならないのではないでしょうか?
> wkbWorkBook.Windows(1).Caption = "テスト"
> wkbWorkBook.Worksheets(Sheet1.Name).Activate
>
> Exit Sub
>End Sub
wkbWorkBook.Windows(1).Caption = "テスト"
これをした場合、2回目の実行で、
>If Application.Windows(wkbbuff.Name).Visible = True Then '★
「wkbbuff.Name」の中身をみると「Book1」になってますが、
実際は、Book1というキャプションのウインドウがないので、エラーになってるような・・・
何故そうなるのかよくわからないですが・・・
また、ichinoseさんが適切なレスを入れてくださると思いますが、
ちょっと気が付いたことを書いてみました。
|
|