Excel VBA質問箱 IV

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

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


4750 / 13646 ツリー ←次へ | 前へ→

【54714】突然のコンパイルエラー yhar 08/3/27(木) 15:02 質問[未読]
【54716】Re:突然のコンパイルエラー VBWASURETA 08/3/27(木) 15:50 発言[未読]
【54717】Re:突然のコンパイルエラー VBWASURETA 08/3/27(木) 16:04 発言[未読]
【54723】Re:突然のコンパイルエラー yhar 08/3/27(木) 16:42 質問[未読]
【54724】Re:突然のコンパイルエラー neptune 08/3/27(木) 17:08 回答[未読]
【54726】Re:突然のコンパイルエラー VBWASURETA 08/3/27(木) 17:50 発言[未読]
【54727】Re:突然のコンパイルエラー yhar 08/3/27(木) 17:57 お礼[未読]
【54730】Re:突然のコンパイルエラー VBWASURETA 08/3/27(木) 18:13 発言[未読]
【54728】Re:突然のコンパイルエラー VBWASURETA 08/3/27(木) 18:01 発言[未読]
【54729】Re:突然のコンパイルエラー yhar 08/3/27(木) 18:08 お礼[未読]

【54714】突然のコンパイルエラー
質問  yhar  - 08/3/27(木) 15:02 -

引用なし
パスワード
   皆さま

こちらにはいつもお世話になっています。
みなさんの力を得て1年以上順調に動いていた帳票台帳管理プログラムが突然コンパイルエラーを多発するようになってしまいました。

下記のユーザーフォームに記述したコードでは、何故かMid関数のところを指して「コンパイルエラー プロジェクトまたはライブラリが見つかりません」というメッセージを出して実行中断してしまいます。

Private Sub TextBox1_AfterUpdate()
Dim MyD As String
  MyD = TextBox1.Text
  MyD = "20" & Left(MyD, 2) & "/" & Mid(MyD, 3, 2) & "/" & Right(MyD, 2)
  If IsDate(MyD) = False Then
    MsgBox "「起票日」の欄に" & Chr(13) & "入力されたデータは日付になりません。" & Chr(13) & "半角6桁 YYMMDD の表記でお願いします。"
    TextBox1.SetFocus
  End If
End Sub

また、この他にも以前こちらで教えて頂いてそのままワークシートに記述した下記のコードで終わりのほうに出てくるTrim関数のところで同じ症状が出て止まってしまうこともあります。

Private Sub Worksheet_Calculate()
If Not AutoFilterMode Then
  Range("A11:IT11").ClearContents
  Exit Sub
End If
Dim Rng As Range
Dim FRng As Range
Dim N As Integer
Dim Cri As String
Dim FltAry()
Application.EnableEvents = False
With ActiveSheet.AutoFilter
  Set FRng = .Range.Resize(1)
  If FRng.Row = 1 Then
    MsgBox "条件を表示出来ません。フィルタ位置を下げてください。"
    Set FRng = Nothing: Exit Sub
  End If
  With .Filters
    ReDim FltAry(1 To .Count, 1 To 3)
    For N = 1 To .Count
      With .Item(N)
        If .On Then
          FltAry(N, 1) = .Criteria1
          If .Operator Then
            If .Operator = 1 Then
              FltAry(N, 2) = " And "
            ElseIf .Operator = 2 Then
              FltAry(N, 2) = " Or "
            End If
            If FltAry(N, 2) <> "" Then
              FltAry(N, 3) = .Criteria2
            End If
          End If
        End If
      End With
    Next
  End With
End With
FRng.Offset(-1).NumberFormatLocal = "@"
For Each Rng In FRng.Offset(-1)
  Cri = FltAry(Rng.Column, 1) & _
      FltAry(Rng.Column, 2) & _
      FltAry(Rng.Column, 3)
  If Trim(Cri) = "" Then
    Rng.ClearContents
  Else
    Rng.Value = Cri
  End If
Next Rng
Application.EnableEvents = True
Set FRng = Nothing
End Sub

バージョンの異なるエクセル(2000、2002と2003)で使ったりするとこのようなことが起きる可能性があるのでしょうか?
それともエクセルで特殊な設定でもあるのでしょうか?(マクロセキュリティーは全て「低」で動かしています。)

何卒ご教示のほどよろしくお願いします。

【54716】Re:突然のコンパイルエラー
発言  VBWASURETA  - 08/3/27(木) 15:50 -

引用なし
パスワード
   ▼yhar さん:
こんにちは。

この手の問題って必ず何かしてるはずですが、
まず3点確認します。

1、今まで動いていたPCは同じPCですか?

2、最近ソフトを何かインストール又はアンインストールしたか
  Windows/OfficeUpdateをしたりしてません?

3、このExcelファイルはバックアップされてます?
  そのバックアップが正常であればExcelファイルが壊れた可能性がある。

【54717】Re:突然のコンパイルエラー
発言  VBWASURETA  - 08/3/27(木) 16:04 -

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

追記です。
1、今まで動いていたPCは同じPCですか?

で、PCが違うのでしたらサービスパックとOfficeUpdateが
ちゃんとあたってるか確認してください。

この問題の場合、マクロの参照設定が見れなくなっているはず。

【54723】Re:突然のコンパイルエラー
質問  yhar  - 08/3/27(木) 16:42 -

引用なし
パスワード
   VBWASURETAさん:
早々の反応ありがとうございます。

>1、今まで動いていたPCは同じPCですか?
>で、PCが違うのでしたらサービスパックとOfficeUpdateが
>ちゃんとあたってるか確認してください。

このエクセルファイルはサーバーに置いてあります。主に3人が
使いますが「共有ファイル」には色々と問題がありそうなので、
同時には開かない職場の約束で運用しています。

バージョンがそろっていないのが情けないところですが、少し整
理すると

●これまで一番頻繁に使用しているAさんは2002を使用していて
 トラブルはなかった。
●AさんのPCが取り替えられ2000にバージョンダウンされた。
●Aさんのエクセル2000でトラブルが起きたファイルはもと使っ
 ていた2002でも親記事のようなエラーが発生する。
●Bさんのエクセル2003・SP3ではトラブルの起きたファイルが
 正常に使える。
●Cさんのエクセル2007・SP1でもトラブルの起きたファイル
 が正常に使える。

職場でPCの入れ替えがあったようなので全体像は把握できていま
せん。
高尚なプログラムならともかく、基本的なMid関数やTrim関数の部分
でコンパイルエラーが出ることが全く解せないところです。

ファイルのバックアップを使えば一時的に元に戻りますが、また同じ
エラーが発生します。なにがどこをどう壊しているのでしょうか?
理解に苦しむところです。

>この問題の場合、マクロの参照設定が見れなくなっているはず。

これはどういう意味でしょう?よろしくお願いします。

【54724】Re:突然のコンパイルエラー
回答  neptune  - 08/3/27(木) 17:08 -

引用なし
パスワード
   ▼yhar さん:
みなさんこんにちは


>>この問題の場合、マクロの参照設定が見れなくなっているはず。
>
>これはどういう意味でしょう?よろしくお願いします。
Excelのワークシートが表示している状態で、
alt + F11
ツールメニュークリック
 参照設定クリック
で現れるダイアログの
「参照可能なライブラリファイル」
の一覧の中に左側のチェックボックスが(灰色にチェック)になっていたら、
「マクロの参照設定が見れなくなっているはず」です。
正常は(白色にチェック)です。

その場合に今回のような現象が発生する事があります。

【54726】Re:突然のコンパイルエラー
発言  VBWASURETA  - 08/3/27(木) 17:50 -

引用なし
パスワード
   皆さんこんにちは。

neptuneさん 説明ありがとうございます。

因みに

> ●AさんのPCが取り替えられ2000にバージョンダウンされた。

が原因です。バージョンダウンは本来の動作が保証されないんです。
ま、やり方次第ですが、まず全てアンインストールされてから
インストールして必要サービスパックやUpdateはされましたか?
一度順追ってから試してください。

【54727】Re:突然のコンパイルエラー
お礼  yhar  - 08/3/27(木) 17:57 -

引用なし
パスワード
   neptuneさん、VBWASURETAさん

ご親切な説明ありがとうございます。
ほぼ理解できました。かなり断定的なご発言からすると2000から
2002へのバージョンアップで大幅な仕様の違いがあったと理解し
てよろしいですか?自分でも調べてみますが、お分かりでしたら教え
てください。

復旧は教えていただいた手順でやってみます。

▼VBWASURETA さん:
>皆さんこんにちは。
>
>neptuneさん 説明ありがとうございます。
>
>因みに
>
>> ●AさんのPCが取り替えられ2000にバージョンダウンされた。
>
>が原因です。バージョンダウンは本来の動作が保証されないんです。
>ま、やり方次第ですが、まず全てアンインストールされてから
>インストールして必要サービスパックやUpdateはされましたか?
>一度順追ってから試してください。

【54728】Re:突然のコンパイルエラー
発言  VBWASURETA  - 08/3/27(木) 18:01 -

引用なし
パスワード
   訂正です。

変えられたということは該当のPCには
元々から2000だったということでしょうか?
それだったらサービスパックとUpdateをあてれば良いはずです。

因みに普通の関数が使えない問題は結構この原因が多いです。

【54729】Re:突然のコンパイルエラー
お礼  yhar  - 08/3/27(木) 18:08 -

引用なし
パスワード
   VBWASURETAさん

ご指摘の通り最初から2000でした。
調べてやってみます。ありがとうございました。

▼VBWASURETA さん:
>訂正です。
>
>変えられたということは該当のPCには
>元々から2000だったということでしょうか?
>それだったらサービスパックとUpdateをあてれば良いはずです。
>
>因みに普通の関数が使えない問題は結構この原因が多いです。

【54730】Re:突然のコンパイルエラー
発言  VBWASURETA  - 08/3/27(木) 18:13 -

引用なし
パスワード
   >ご親切な説明ありがとうございます。
>ほぼ理解できました。かなり断定的なご発言からすると2000から
>2002へのバージョンアップで大幅な仕様の違いがあったと理解し
>てよろしいですか?自分でも調べてみますが、お分かりでしたら教え
>てください。

いいえ、そいうわけではないです。
それだと基本関数がExcel97とかでは使えないということになりますよね?

パソコンの話になってくるのでここで言うべき話ではないですが、
何故Updateとかあると思いますか?

バージョンアップに伴って、旧関数の不具合修正やセキュリティ強化
を後から公開しているからということです。

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