アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2013で次のようなコードについてアドバイスをお願いします。
マクロ上で「新しいウィンドウを開く」が実行されていて、【ブック名:1】のようにどんどんシートが増えていきクローズしたいのだが、いくつウィンドウが開かれているか分からない状態で新ウィンドウだけを(例えば1から5のウィンドウをクローズする)コードを教えてください。ちなみに、教えてもらったコードを次のコード内に入れ込む予定です。よろしくお願いします。


Sub 新ウインドウのクローズ()
Dim strBookName As String
strBookName = ThisWorkbook.Name

On Error Resume Next
Windows.BreakSideBySide '並べて比較を解除
Windows(strBookName & ":1").Close
Range("a3").Select
End Sub

A 回答 (3件)

こんにちは。



>最後に残ったウィンドウの最大化もコード化できれば教えてください。現在は小さいまま残っています。

そうでしたね。残ったウィンドウが、気がついていたのですが、そのままにしてしまいました。

Sub ClosingWindows()
Dim i As Long
With ActiveWorkbook.Windows
For i = .Count To 2 Step -1
 .Item(i).Close
Next
.Item(1).WindowState =xlMaximized '←ここに加える
End With
Range("A3").Select
End Sub
'//

私自身は、ここで最後に残った .Item(1)を任意の大きさにするために、
xlMaximized の代わりに、このようなことを考えました。

With .Item(1)
.Height =780
.Width =1000
.Top =1
.Left =1
End With
Range("A3").Select
End Sub
    • good
    • 0
この回答へのお礼

なるほど。こんな方法もあるんですね。重ね重ねありがとうございました。

お礼日時:2018/09/21 14:26

>いくつウィンドウが開かれているか分からない状態で新ウィンドウだけを(例えば1から5のウィンドウをクローズする)



ということでしたら、このようになります。
最後の1つは残します。

Sub ClosingWindows()
Dim i As Long
With ActiveWorkbook.Windows
For i = .Count To 2 Step -1
 .Item(i).Close
Next
End With
Range("A3").Select
End Sub
    • good
    • 0
この回答へのお礼

思い通りの結果になりました。ありがとうございました。もう一つ、できれば教えていただきたいのですが、最後に残ったウィンドウの最大化もコード化できれば教えてください。現在は小さいまま残っています。お願いします。

お礼日時:2018/09/21 09:09

For Each Wn In ThisWorkbook.Windows


  If Mid(Wn.Caption, 2, 1) = ":" Then
    If Right(Wn.Caption, 1) > "1" Then
      Wn.Close
    End If
  End If
Next Wn
かな。
    • good
    • 0
この回答へのお礼

対応のため、コード作成、ありがとうございました。ただ、ウィンドウは消えていません。

お礼日時:2018/09/21 09:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!