まりふのひと

マクロ家計簿77ver.106b/使えないボタンをグレイアウトする

 明日(元旦)に「初火の出」を実現しようと、炭焼きの準備を始めた‥‥ が、想定外の雨となった。
雨では薪(竹)の準備が出来ない... で、明日朝一からの炭焼きは諦めた。
帰宅後、外からはストーブで、内からは焼酎で体を暖め‥‥



 [翌年分ブック作成]で発生する実行時エラーを

  1. マクロ家計簿77ver.1.06 で、csvに落とすようにした。
  2. ver.1.06a では、[マクロ家計簿77エラー]というボタンを作成し、エラーの内容を表示できるようにした。
  3. 更に ver.106b では、[マクロ家計簿77エラー]が必要ない時はグレイアウトするようにした。(コードは後述)


 やったぁ〜

  1. Public Function メニューをリセットする()
  2. Dim mbTitle As String
  3. Dim FSO As Object, FS As Object
  4. Dim csvFullPath As String
  5. Dim recCount As Long, startBookCount As Long, nowBookCount As Long
  6. Dim createDate As Date
  7.  
  8. mbTitle = "メニューをリセットする/" & getMacroTitle()
  9. csvFullPath = ThisWorkbook.Path & "\" & ERRTextFile
  10. If Dir(csvFullPath) = "" Then
  11. frmメニュー.cmdエラー表示.Enabled = False
  12. Exit Function
  13. End If
  14. Set FSO = CreateObject("Scripting.FileSystemObject")
  15. Set FS = FSO.getfile(csvFullPath)
  16. createDate = FS.DateCreated
  17. With FSO.OpentextFile(csvFullPath, 8)   '後ろから開く
  18. recCount = .Line - 1  'EOFをカウントしてしまうので -1 する。
  19. .Close
  20. End With
  21. Set FSO = Nothing
  22.  
  23. If recCount <= 1 Then
  24. Kill csvFullPath
  25. frmメニュー.cmdエラー表示.Enabled = False
  26. Exit Function
  27. End If
  28. LngAns = DateDiff("m", createDate, Now)
  29. If LngAns >= 1 Then
  30. Kill csvFullPath
  31. frmメニュー.cmdエラー表示.Enabled = False
  32. Else
  33. frmメニュー.cmdエラー表示.Enabled = True
  34. End If
  35.  
  36. End Function
  • No.14〜15: FileSystemObject(FSO)で‥‥
  • No.16: 作成日(DateCreated)を取得する。
  • No.17: ファイルを後ろから開いて、(Excelヘルプ “OpenTextFile メソッド”)
  • No.18: レコード数を取得する。EOF もカウントするので -1 する。