Excel VBA質問箱 IV

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

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


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

【72008】ファイルの閉じ方 マカロン 12/5/16(水) 11:38 質問[未読]
【72009】Re:ファイルの閉じ方 kanabun 12/5/16(水) 11:58 発言[未読]
【72012】Re:ファイルの閉じ方 マカロン 12/5/16(水) 13:03 お礼[未読]
【72010】Re:ファイルの閉じ方 UO3 12/5/16(水) 12:05 発言[未読]
【72011】Re:ファイルの閉じ方 マカロン 12/5/16(水) 13:01 お礼[未読]

【72008】ファイルの閉じ方
質問  マカロン  - 12/5/16(水) 11:38 -

引用なし
パスワード
   下記のようにファイルを開いて、データを取り込みましたが
データ取得元のファイルを閉じるにはどうすればよいのでしょうか?
Workbooks(OpenFile).close
では、インデックスは有効範囲にありませんと言われてしまいます。
ご教授よろしくお願いします。

OpenFile = Application.GetOpenFilename("Excelファイル,*.xls")
 If OpenFile <> "False" Then
  Workbooks.Open OpenFile
  With Sheets("Sheet1")
   範囲 = Range("A1").End(xlDown).Row
   Range("A1:S" & 範囲).CurrentRegion.Copy
  End With
  With ThisWorkbook.Sheets("Sheet1").Range("A1").PasteSpecial
   Application.CutCopyMode = False
  End With
 End If

【72009】Re:ファイルの閉じ方
発言  kanabun  - 12/5/16(水) 11:58 -

引用なし
パスワード
   ▼マカロン さん:
> OpenFile = Application.GetOpenFilename("Excelファイル,*.xls")
> If OpenFile <> "False" Then
>  Workbooks.Open OpenFile
このとき、変数 OpenFileには パス名が入っています。
たとえば 以下のような。
OpenFile = "H:\(Data)\FData\F_Data2010.xls"

>Workbooks(OpenFile).close
Closeするときは パス名付きでなく、正味ファイル名だけで必要十分です。
上の例だと、"F_Data2010.xls" 部分だけで。

(1) FsoのGetFileName メソッドとか

(2) 単純に InStrRev(OpenFile, "\") でお尻から探して最初に見つかった \
の位置以降をとりだしても、FileName "F_Data2010.xls"
が取得できます。

【72010】Re:ファイルの閉じ方
発言  UO3  - 12/5/16(水) 12:05 -

引用なし
パスワード
   ▼マカロン さん:

こんにちは

今開いて、そのままのブックは ActiveWorkbook として参照できます。
アップされたコードで、不要なところ、あるいは With でくくっているのに
その後のセル参照の記述が(結果オーライですけど)正しくないところ 等もなおしてあります。

また、モジュールの先頭には、Option Explicit を記述して、全ての変数を必ず定義するようにしましょう。

Sub Sample()
  Dim OpenFile As String
  Dim 範囲 As Long
  
  OpenFile = Application.GetOpenFilename("Excelファイル,*.xls")
  If OpenFile <> "False" Then
    Workbooks.Open OpenFile
    With Sheets("Sheet1")
      範囲 = .Range("A1").End(xlDown).Row
      .Range("A1:S" & 範囲).Copy ThisWorkbook.Sheets("Sheet1").Range("A1")
    End With
    Application.CutCopyMode = False
    ActiveWorkbook.Close False
  End If
  
End Sub

【72011】Re:ファイルの閉じ方
お礼  マカロン  - 12/5/16(水) 13:01 -

引用なし
パスワード
   ▼UO3 さん:

全体的にご指摘いただき、ありがとうございました。
お陰さまで上手くいきました。とっても助かりました。
これからも勉強します。

【72012】Re:ファイルの閉じ方
お礼  マカロン  - 12/5/16(水) 13:03 -

引用なし
パスワード
   ▼kanabun さん:

ご教授ありがとうございます。
ファイルを閉じるのにはパスは不要なんですね。
これからも勉強します。

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