Excel VBA質問箱 IV

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

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


25038 / 76736 ←次へ | 前へ→

【57043】【訂正】Re:リンクの更新
発言  ハチ  - 08/7/18(金) 17:08 -

引用なし
パスワード
   ▼菜実 さん:
>>  Set i = Workbooks.Open(ThisWorkbook.Path & "AAA.xls").Worksheets("設定")

見落としてました。
.Path & "\AAA.xls"

>>    Workbooks("AAA.xls").Close False

>i.Close False のほうが良いです。

→ i.Parent.Close False
ですね・・・失礼しました。

自分だったら・・・

1.データを持ってくる処理が、2種類あるのならSubを2つに分けて、
メインのプロシジャからCallする。

2.開く処理を少しでも早くするのなら、
更新処理の前にファイルの最終更新日を取得して
更新処理が必要か判定してから実行する。

Option Explicit

Sub Test()
  Dim myFile As String
  Dim ChkRng As Range
  Dim buf As Variant

  myFile = ThisWorkbook.Path & "\AAA.xls"
  
  'ファイルの最終更新日を保存して置くセル
  Set ChkRng = ThisWorkbook.Worksheets(1).Range("A1")
  
  buf = func_LastMod(myFile)
  If buf = "" Then
    MsgBox "ファイルが見つかりません"
    Exit Sub
  End If
  
  If ChkRng.Value = buf Then
    MsgBox "更新なし"
  Else
    MsgBox "データ更新開始"
    Call Exec1(myFile)
    ChkRng.Value = buf
  End If
  
  Set ChkRng = Nothing
End Sub

Private Sub Exec1(ByVal myFile As String)
  Dim Ws As Worksheet
  
  Set Ws = Workbooks.Open(myFile).Worksheets(1)
  MsgBox Ws.Parent.Name & "." & Ws.Name & "から処理"
  Ws.Parent.Close False
End Sub

'ファイルの最終更新日を取得するファンクション
'ファイルが存在しない場合は、""を返す
Private Function func_LastMod(ByVal myFile As String) As Variant
  Dim FSO As Object
  
  Set FSO = CreateObject("Scripting.FileSystemObject")
  If Dir(myFile) <> "" Then
    func_LastMod = FSO.GetFile(myFile).DateLastModified
  Else
    func_LastMod = ""
  End If
  
  Set FSO = Nothing
End Function
0 hits

【56990】リンクの更新 菜実 08/7/16(水) 16:26 質問
【57002】Re:リンクの更新 ハチ 08/7/17(木) 9:16 発言
【57003】Re:リンクの更新 菜実 08/7/17(木) 9:39 発言
【57005】Re:リンクの更新 ハチ 08/7/17(木) 11:16 発言
【57007】Re:リンクの更新 菜実 08/7/17(木) 11:31 お礼
【57009】Re:リンクの更新 ハチ 08/7/17(木) 13:01 発言
【57013】Re:リンクの更新 菜実 08/7/17(木) 13:58 お礼
【57035】Re:リンクの更新 菜実 08/7/18(金) 10:02 質問
【57036】Re:リンクの更新 ハチ 08/7/18(金) 11:17 発言
【57043】【訂正】Re:リンクの更新 ハチ 08/7/18(金) 17:08 発言
【57074】Re:【訂正】Re:リンクの更新 菜実 08/7/22(火) 9:39 お礼

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