Excel VBA質問箱 IV

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

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


28831 / 76738 ←次へ | 前へ→

【53197】Re:モジュール削除、インポート連続実行で不具合
発言  ウーロン  - 07/12/19(水) 19:40 -

引用なし
パスワード
   Jakaさん ありがとうございます

>なんせ、マカフィ―に資料が全部消されて残ってないんです。
>テキストに書いておいたものも。

時折、見かけることが有るような気がしましたが
こうして、生に聞くと、実際に削除されてしまうんですね〜

やはり、こういう操作は・・・避けるようにしたいけど・・・
データ入力補助でシートイベントを多用していて
うまくDTブックとマクロブックが分離できなかったみたいなです
時間が取れたときにブックの分離について再考してみたいと思いますが時間がないです・・・
ただ、本件は、入れ替えが済めば重過ぎるので、修正する気にはなりません・・・
です

>モジュールを削除した後、1度VBProjectの中を1番最初に提示した方法で空回りさせてみてください。
空回りですか
了解です


ハチさん ありがとうございます

>上書きされずに違うモジュール名でImportされましたが、
すいません、書き間違いです
Module9.basに追加でModule91.basとなります

>そのあたりにコードのバグとかないですか?
症状は、アップ頂いたpopoと同じものになります。


以下は切り分けのためpopoでの検証結果1-3です

1)-2)時は、basが残るエラーがあったのですが
3)時に作成途中になぜかエラーが出なくなってしまいました

で、動作確認しようとするとフォームが古いままで動作せず
フォーム他入れ替えも組み込んでしまいました。

1)-2)は、対象ブックを開いたまま実行
3)はコードからブックを開いています
で、対象ブックの途中保存も不要となりました

原因がはっきりつかめていないのでなんともですが・・・
コメント頂けるとうれしいですよろしくお願いいたします


'1)上書き時 (途中でsaveしない場合)

Sub popo()
  Dim wb As Workbook
  Dim vbc As Object
  PAS = CreateObject("WScript.Shell").SpecialFolders("Desktop")
  With Workbooks("TG_BOOK.xls").VBProject
  
  'basが11個表示
  
    DoEvents
    
    For Each vbc In .VBComponents
      If vbc.Type = 1 Then
        .VBComponents.Remove vbc
      End If
    Next
    
    'Module9.basが残

    DoEvents
    
    With ActiveWorkbook.VBProject
      For Each vbc In .VBComponents
      Next
    End With
    
    'Module9.basが残
    
    DoEvents
    
    With ActiveWorkbook.VBProject
      For Each vbc In .VBComponents
      Next
    End With
    
    'Module9.basが残
    
    DoEvents
    
    For I = 1 To 11  '←ここでストップ?
      .VBComponents.Import CreateObject("WScript.Shell").SpecialFolders("Desktop") & NEW_MD & I & ".bas"
    Next
    
    '11bas+Module91.basが追加
    
    DoEvents
    
  End With
End Sub


'2)上書き時 (途中でsaveした場合)

Sub popo()
  Dim wb As Workbook
  Dim vbc As Object
  PAS = CreateObject("WScript.Shell").SpecialFolders("Desktop")
  With Workbooks("TG_BOOK.xls").VBProject
  
  'basが11個表示
  
    DoEvents
    
    For Each vbc In .VBComponents
      If vbc.Type = 1 Then
        .VBComponents.Remove vbc
      End If
    Next
    
    'Module9.basが残

    DoEvents
    
    With ActiveWorkbook.VBProject
      For Each vbc In .VBComponents
      Next
    End With
    
    'Module9.basが残
    
    DoEvents
    
    Workbooks("TG_BOOK.xls").Save  '上書き保存
    
    'Module9.basが残
    
    DoEvents
    
    With ActiveWorkbook.VBProject
      For Each vbc In .VBComponents
      Next
    End With
    
    'Module9.basが残
    
    DoEvents
    
    For I = 1 To 11  '←ここでストップ?
      .VBComponents.Import CreateObject("WScript.Shell").SpecialFolders("Desktop") & NEW_MD & I & ".bas"
    Next
    
    '11bas+Module91.basが追加
    
    DoEvents
    
  End With
End Sub

'3)エラーがなくなりました

Sub popo()
  Dim wb As Workbook
  'Dim vbc As Object
  Dim vbcs  As VBIDE.VBComponents
  Dim vbc   As VBComponent
  
  
  'PAS = CreateObject("WScript.Shell").SpecialFolders("Desktop")
  
  Application.EnableEvents = False
  On Error Resume Next
  Workbooks.Open ("\\TG_FLD\TG_BOOK.xls")
  On Error GoTo 0
  Application.EnableEvents = True
  
  With Workbooks("TG_BOOK.xls").VBProject
  
  'basが11個表示
  
    DoEvents
    
    'For Each vbc In .VBComponents
      'If vbc.Type = 1 Then
      '  .VBComponents.Remove vbc
      'End If
    Set vbcs = Workbooks("TG_BOOK.xls").VBProject.VBComponents
    For Each vbc In vbcs
      
      
      Select Case vbc.Type
        'Case vbext_ct_StdModule, vbext_ct_ClassModule, vbext_ct_ClassModule
        Case vbext_ct_StdModule, vbext_ct_ClassModule, vbext_ct_MSForm
          vbcs.Remove vbc
        Case vbext_ct_Document
          With vbc.CodeModule
          .DeleteLines 1, .CountOfLines
          End With
        Case Else
          vbcs.Remove vbc
        
      End Select
      
    Next
    
  'basが無し
  
  
    DoEvents
    
    'For I = 1 To 11  '←ここでストップ?
    '  .VBComponents.Import CreateObject("WScript.Shell").SpecialFolders("Desktop") & NEW_MD & I & ".bas"
    'Next
    
    Call AllMdlImport("TG_BOOK.xls", "C:\Documents and Settings\NEW_MD")
    
    DoEvents
    
'    Workbooks("TG_BOOK.xls").Save  '上書き保存
    
  End With
End Sub

0 hits

【53177】モジュール削除、インポート連続実行で不具合 ウーロン 07/12/18(火) 17:26 質問
【53178】Re:モジュール削除、インポート連続実行で... Jaka 07/12/18(火) 17:38 発言
【53179】Re:モジュール削除、インポート連続実行で... neptune 07/12/18(火) 17:49 発言
【53181】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/18(火) 18:52 発言
【53189】Re:モジュール削除、インポート連続実行で... Jaka 07/12/19(水) 11:42 発言
【53192】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/19(水) 14:54 質問
【53193】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/19(水) 15:10 発言
【53194】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/19(水) 15:43 質問
【53195】Re:モジュール削除、インポート連続実行で... Jaka 07/12/19(水) 16:21 発言
【53196】Re:モジュール削除、インポート連続実行で... ハチ 07/12/19(水) 17:46 発言
【53197】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/19(水) 19:40 発言
【53198】Re:モジュール削除、インポート連続実行で... ハチ 07/12/19(水) 20:14 発言
【53202】Re:モジュール削除、インポート連続実行で... neptune 07/12/19(水) 22:41 発言
【53204】Re:モジュール削除、インポート連続実行で... ウーロン 07/12/20(木) 14:08 お礼

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