エクセルを開くと「実行時エラー91;オブジェクト変数またはWithブロック変数が設定されていません」のメッセージで開けません。別の者に作ってもらったシステムです。ファイルを開く方法及び修復方法を教えてください。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2010/05/31 23:39:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:hissssa No.1

回答回数428ベストアンサー獲得回数129

ポイント25pt

これだけの情報では断言はできませんが、Excelシート内で定義されている自動実行マクロのバグではないでしょうか。

メニューの「ツール」→「マクロ」→「セキュリティ」でマクロの実行セキュリティレベルを上げておけばマクロが自動実行されなくなるので対応できるかも知れません。

http://www.microsoft.com/japan/office/ork/2003/seven/ch25/SecC02...

id:kaji0245

アドバイスありがとうございます。

マクロの実行セキュリティレベルをあげてみましたが、今度はファイル自体が起動しませんでした。

2010/05/31 15:39:47
id:wwwww1 No.2

回答回数63ベストアンサー獲得回数0

My Soul, Your Beats!/Brave Song 【初回生産限定盤】

My Soul, Your Beats!/Brave Song 【初回生産限定盤】

  • アーティスト: Lia 多田葵
  • 出版社/メーカー: アニプレックス
  • 発売日: 2010-05-26
  • メディア: CD

id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント25pt

エラーは マクロで出力されているものなので、セキュリティレベルは 関係ないですね。

これを下げないと 実行されませんから。

シートが複数ある場合、それを指定のものにしとかないとダメなのかもしれません。

また、マクロのソースを公開できるのであれば 公開してもらえば エラーが見つけやすくなります。

実際には 一度は ちゃんと動いてるものだと思いますので

なんらかの環境的なことが影響しているのでは ないのかと思いますけどね。


http://q.hatena.ne.jp/1275278024

id:kaji0245

コメント欄にてモジュール1のソースを張ってみました。

何かアドバイスでもいただければ幸いです<(_ _)>

2010/05/31 18:19:05
id:Chakuwiki No.4

回答回数114ベストアンサー獲得回数5

ポイント40pt

Sub ボタン1_Click()の下にwithブロック変数を追加します。


Sub ボタン1_Click()

Sub ボタン1_Click()

With Worksheets("シート名")

また、End Subの上にEnd withを追加します。

Sub ボタン4_Click()も同様に操作します。

http://q.hatena.ne.jp/answer

id:kaji0245

コメントの内容に修正したのですが、同様のエラーが出ます(^_^;)

2010/05/31 22:26:37
  • id:kaji0245
    エラーウィンドウ内の【デバッグモード】ボタンが選択できないようにグレー表示になってます(-_-;)
  • id:kaji0245
    Option Explicit
    Global fc As Range
    Global cn As String '列名
    Global v As Long
    Global I As String
    Global asn As String
    Global lr As Long
    Global lr2 As Long

    Sub ボタン1_Click()
    UserForm1.Show 0
    End Sub
    Private Sub Auto_Open()

    '色帯クリア
    asn = ActiveSheet.Name
    Application.ScreenUpdating = False
    Dim x As Integer
    For x = 1 To 12
    Worksheets(x & "月").Select
    '色帯は便名の3行下まで入るため
    lr = Range("A" & Rows.Count).End(xlUp).Row + 5
    Range("AL2:IV" & lr).Interior.ColorIndex = xlNone '色帯はA列もクリア
    Next

    Worksheets(asn).Select
    Application.ScreenUpdating = True
    UserForm1.Show 0

    End Sub

    Sub m1()
    '日付
    If Worksheets("設定").Range("A3") = "" Then
    MsgBox "2008や2009など西暦の年度を入力してください。"
    Worksheets("設定").Range("A3").Select
    Exit Sub
    End If

    Application.ScreenUpdating = False

    Dim x As Integer
    For x = 1 To 12
    Worksheets(x & "月").Select
    Range("B1:AX1").Clear
    Range("B1").Value = Format(Worksheets("設定").Range("A3") & "/" & x & "/1") ', "m/d(aaa)")
    Range("B1").AutoFill Destination:=Range("B1:AK1"), Type:=xlFillDefault
    Range("B1:AK1").Select
    Range("B3").Select

    Dim s As Integer
    For s = 2 To 51
    Cells(1, s) = Format(Cells(1, s), "m/d(aaa)")
    Next

    Dim r As Range
    Dim y As Variant
    Set r = Range("B1:AK1")

    For Each y In r
    Select Case Right(y.Value, 3)
    Case "(土)"
    y.Font.ColorIndex = 5
    Case "(日)"
    y.Font.ColorIndex = 3
    End Select
    Next y

    Range("B1:AK1").VerticalAlignment = xlBottom

    Next




    Worksheets("設定").Select
    Application.ScreenUpdating = True
    MsgBox "設定しました。"
    End Sub

    Sub ボタン4_Click()
    Call m1
    End Sub
  • id:taknt
    どこの行で エラーが 出るのかは わかりますでしょうか?
  • id:kaji0245
    いや残念ながら、デバッグボタンが押せない状態なのでエラー行もわかりません(~_~;)
    バックアップにとっておいたファイルは開くので、上記コードを見比べてみましたが同じです。
    よく覚えてないのですが、エクセルの画面上のボタンを知らぬ間にドラッグしてしまったようで・・・
    それ以来のエラーだと思うのですが。
  • id:taknt
    ボタンの設定が おかしくなってしまったのかもしれませんね。
  • id:kaji0245
    Option Explicit
    Global fc As Range
    Global cn As String '列名
    Global v As Long
    Global I As String
    Global asn As String
    Global lr As Long
    Global lr2 As Long

    Sub ボタン1_Click()
    With Worksheets("5月")
    UserForm1.Show 0
    End With
    End Sub
    Private Sub Auto_Open()

    '色帯クリア
    asn = ActiveSheet.Name
    Application.ScreenUpdating = False
    Dim x As Integer
    For x = 1 To 12
    Worksheets(x & "月").Select
    '色帯は便名の3行下まで入るため
    lr = Range("A" & Rows.Count).End(xlUp).Row + 5
    Range("AL2:IV" & lr).Interior.ColorIndex = xlNone '色帯はA列もクリア
    Next

    Worksheets(asn).Select
    Application.ScreenUpdating = True
    UserForm1.Show 0

    End Sub

    Sub m1()
    '日付
    If Worksheets("設定").Range("A3") = "" Then
    MsgBox "2008や2009など西暦の年度を入力してください。"
    Worksheets("設定").Range("A3").Select
    Exit Sub
    End If

    Application.ScreenUpdating = False

    Dim x As Integer
    For x = 1 To 12
    Worksheets(x & "月").Select
    Range("B1:AX1").Clear
    Range("B1").Value = Format(Worksheets("設定").Range("A3") & "/" & x & "/1") ', "m/d(aaa)")
    Range("B1").AutoFill Destination:=Range("B1:AK1"), Type:=xlFillDefault
    Range("B1:AK1").Select
    Range("B3").Select

    Dim s As Integer
    For s = 2 To 51
    Cells(1, s) = Format(Cells(1, s), "m/d(aaa)")
    Next

    Dim r As Range
    Dim y As Variant
    Set r = Range("B1:AK1")

    For Each y In r
    Select Case Right(y.Value, 3)
    Case "(土)"
    y.Font.ColorIndex = 5
    Case "(日)"
    y.Font.ColorIndex = 3
    End Select
    Next y

    Range("B1:AK1").VerticalAlignment = xlBottom

    Next




    Worksheets("設定").Select
    Application.ScreenUpdating = True
    MsgBox "設定しました。"
    End Sub

    Sub ボタン4_Click()
    With Worksheets("5月")
    Call m1
    End With
    End Sub
  • id:kaji0245
    エクセル上でメニュー内の非表示をクリックしていたようでした。
    「再表示」をクリックしたら表示されたので別名で保存してOKでした。
    お粗末さまでした<(_ _)>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません