Excel VBA質問箱 IV

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

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


33551 / 76734 ←次へ | 前へ→

【48399】Re:条件にあったファイルを開き、処理後閉じるには
回答  Kein  - 07/4/16(月) 12:41 -

引用なし
パスワード
   >ブック(B)を閉じる
いくつかの方法が考えられますが、ブック(B)を開いた時点で、Workbook型の
グローバル変数に格納しておき、それを使って閉じる。というのが分かりやすい
と思います。モジュールの先頭に

Private MyBook As Workbook

と宣言し、Sub A06支払月報ファイル検索() で

  End If
  Set MyBook = ActiveWorkbook '←このコードを追加する
End Sub

>ブック(B) を閉じて
の部分は

If Not MyBook Is Nothing Then
  MyBook.Close False
  Set MyBook = Nothing
End If

などとします。でももっと簡単な方法は、プロシージャを分割しないで
一つにまとめてしまうことでしょうね。そうすれば MyBook も宣言せずに
ActiveWorkbook.Close False とするだけで済みそうですし、いくらか処理も速く
なります。ちなみに Sub A06支払月報ファイル検索() のコードの書き方は

Sub A06支払月報ファイル検索()
  Dim MyNum As Integer
  Dim MyF As String
  Const Fol As String = "X:\_売上報告関連\支払月報\"

  On Error GoTo ELine
  MyNum = Worksheets("メイン").Range("C1").Value
  If MyNum > 0 And MyNum < 7 Then
   MyF = Format(MyNum + 8, "00") & "月支払月報.xls"
   Workbooks.Open Fol & MyF
   Set MyBook = ActiveWorkbook
  End If
ELine:
End Sub

などとすれば、うまくまとまると思います。

4 hits

【48395】条件にあったファイルを開き、処理後閉じるには tamachan 07/4/16(月) 11:49 質問
【48398】Re:条件にあったファイルを開き、処理後閉... ウッシ 07/4/16(月) 12:17 発言
【48399】Re:条件にあったファイルを開き、処理後閉... Kein 07/4/16(月) 12:41 回答
【48411】Re:条件にあったファイルを開き、処理後閉... tamachan 07/4/16(月) 19:04 お礼

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