Excel2010 VBAでWorkbook Open後にブックが表示されない問題が発生

このQ&Aのポイント
  • VBAにてWorkbook Openでコードを入れた後、ブックが表示されない問題が発生しました。
  • ActivePrinterの設定が間違っていたことが原因で、ブックが読み込み中のまま表示されません。
  • データのバックアップがない場合は、新しいファイルにデータを入れなおすことで解決可能ですが、他の起動方法があれば教えてください。
回答を見る
  • ベストアンサー

Excel2010 VBA

すみません。 VBA独学勉強中の身です。 VBAにて Workbook Open で いろいろ試してコードを入れて閉じたところ、 ブックの起動ができなくなりました。 コードは、 Application.ActivePrinter = "プリンター名"(プリンター名はきちんと入れてます。) をいれました。(後で気づいたのですが、コレ自体間違っていました。) 100%読み込みまでは行きますが、 その後がず~っと読み込み中というか、 ブックの表示がされない状態です。 30件程度のデータなので、 バックアップを取っておいたデータ無しの ファイルに入れなおせば済むのですが、 起動する方法がもしあれば、教えて頂きたく 質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1622/2462)
回答No.2

ファイル名を変更もしくは別のフォルダに移動して起動してみてください、コンテンツの有効化のセキュリティ警告が再度出てマクロが実行されない状態で起動します。

-antsu-
質問者

お礼

ありがとうございます。 ファイル名変更では改善しませんでしたが、 別フォルダへ移動したら無事、起動する事ができました。 助かりました。

その他の回答 (1)

  • Seeley
  • ベストアンサー率62% (23/37)
回答No.1

shiftキーを押しながらそのExcelファイルを開いたらマクロ無効で開くはずですがダメですか。

参考URL:
http://okwave.jp/qa/q7744698.html
-antsu-
質問者

お礼

ありがとうございます。 Shihtキーで試してみましたが、 仕方が悪いのか、起動しませんでした。

関連するQ&A

  • お助け下さい!

    こちらでは、いつも皆さんにお世話になっています。 早速ですが、教えて下さい。 エクセル2007でVBAを作成したのですが、作成したPC以外でVBAが上手く働きません。 例えば、Application ActivePrinter で、印刷するシートによってプリンターをしていたのですが、 切り換わらず、通常使用するプリンターに設定されているプリンターで印刷されてしまったり、 Workbook_Open()で、 ブックをオープンした時に別のブックを開くようにしたのですが、 それが開かなかったりしています。 作成したPCでは動作するので、VBAの組み方等は問題ないと思うのですが、 こちらでの他の方の質問や、本などを参考にしてみても、どうしても上手くいきません。 お手数おかけしますが、お助け下さい。 宜しくお願いします。

  • VBAの「This Workbook」について

    VBAの「This Workbook」にコードを書くことについて教えて下さい。 ここにコードを書きと、例えばどんな便利な機能があるのでしょうか? よろしくお願いします。 私は下記の意味はだいだいわかります。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Private Sub Workbook_Open()

  • VBA EXCEL 開かずにデータ操作

    現在下記のようなコードでテストしています。 Sub Sample() Dim TargetBook As Workbook    Set TargetBook = Workbooks.Open("Book2.xls")    TargetBook.Sheets("Sheet1").Cells(1, 5) = Cells(1, 1)    TargetBook.Close End Sub Book2を開いてセルの読み書きはテストできました。 これをBook2をopenせず閉じた状態で操作したいと思っています。 Workbooksの表示されるメソッドを色々試してみますが出来ません。 OpenDatabaseが使用できるのかと思いますが、出来ません。 ご指導よろしくお願いします。

  • Excel VBAを使って、Excelデータを別のExcelファイルに取り込みします

    報告書にexcel VBAを使って、(報告書を開いたまま)報告書のデータを別のexcelファイル(一覧)に取り込みします。 Sub k() Dim ブック As Workbook Set ブック = Workbooks.Open("c:\テスト\" & "一覧.xls") ブック.Worksheets("Sheet1").Cells(3, 2) = Worksheets("企業情報シート").Cells(3, 3) End Sub 報告書の"Worksheets("企業情報シート").Cells(3, 3)"は書き方がおかしいみたいで、正しい書き方を教えてください。

  • EXCEL2000でのVBAについて

    お世話になります。 EXCEL2000のVBで下記のことをしたいのですが、うまく出来ないところがあり対処方法を教えて頂きたいです。 (1)アクティブブックの名前を取得   (2)ブックのセルA1の値を取得 (3)保存ダイアログでA1の値をファイル名にし保存 (4)保存したファイルを閉じる (5)基のアクティブブックを再度開く 以上です。 今できていないのは(1)と(5)です。 基のアクティブブックの名前をプログラム上に直接入力する分には出来るのですが、 ファイル名が変更になった時に、いちいちVBを書き換えるのが面倒なだけです… コードを提示しますので、ご教授願えればと思います。 Sub 保存() Dim ファイル名 As String, フォルダ名 As Object, フォルダ選択 As Object, ファイル名2 As Workbook Set ファイル名2 = ActiveWorkbook ファイル名 = Range("A1").Value Set フォルダ選択 = CreateObject("Shell.Application") Set フォルダ名 = フォルダ選択.BrowseForFolder(0, "保存フォルダを選んでください", 1) ActiveWorkbook.SaveAs Filename:=フォルダ名.items.Item.Path & "\" & ファイル名 & ".xls" MsgBox ファイル名 & ".xls", vbOKOnly, フォルダ名 & "に保存しました" Workbooks.Open "C:\test\" & ファイル名2 Workbooks(ファイル名 & ".xls").Close End sub ファイル名の取得が間違っていると思うのですが、ネットなどで調べてみましたが、よくわかりませんでした。

  • EXCEL2000とEXCEL2003のVBAについて

    現在、EXCEL2000で下記のコードを実行しています。 が、EXCEL2003で実行すると、 .UsedRange.Copy myb のコードが実行されているのにコピー出来ていません。 ファイルは開いていて、エラーは出ていないのです。 問題点わかる方教えていただけますか? Sub 日別データ読込() Dim rngsaki As Range Dim pathmacrobook As String Dim namebook As String Dim motobook As Workbook Dim myb As Variant Set rngsaki = Workbooks("残高集計用.xls").Worksheets(3).Range("a2") pathmacrobook = ThisWorkbook.Path & "\CSV読込データ12\" namebook = Dir(pathmacrobook & "*.xls") Do While Not namebook = "" Set motobook = Workbooks.Open(pathmacrobook & namebook) Set myb = Workbooks("残高集計用.xls").Worksheets(3).Range("A65536").End(xlUp) With motobook.Worksheets("Sheet1") .UsedRange.Copy myb End With motobook.Close False namebook = Dir() Loop MsgBox "完了しました" End Sub

  • エクセルファイルをオープンしたときの再計算について

    エクセルファイルをオープンすると自動的に再計算がされます。VBAを使って、Workbook_Open()で、再計算を止めると、当然、ブックを開いた時全てで再計算が停止してしまいます。 で、質問ですが、あるブックから他のブックを開いた時には、再計算を行なわない(あるブックにVBAを組み込んで・・(イベントは、ボタンにからめてもok!)にして、手動で他のブックを開いた時は、再計算を行なうようなことが出来るのでしょうか? VBA初心者の僕として、精一杯考えたのは、親となるブックから、他のブックを開いた時に、他のブックのWorkbook_Open()イベントが始る前にWorkbook_Open()を書き込めればできると思うのですが?そんなこと無理なのでは?って思います。どなたか?詳しい方いませんでしょうか?宜しくお願い致します。

  • VBAでExcelファイルのPDF自動化

    表題の通りの事をしたいと思っています。とあるサイトで参照したvbaコードで、デスクトップにファイルをExcelのブック名と同じ名前でPDFに変換するところまで出来ました。あと自動でやりたいことは2つあり、(1)とあるセルの情報を読み込み保存名にしたい【○○○.pdfという具合に】、(2)生成したpdfファイルの保存先をマクロ内に設け指定したいです。【\\サーバー名\○○\△△\□□などのように】 現状までのコードを表記します。わかる方いらっしゃいましたら、お手数ですがアドバイスお願いします。 自分はマクロは手を出したばかりで、初心者です。宜しくお願いします。 Sub pdf() Dim i As Integer Dim s_prn As String, oldprn As String, flg As Boolean On Error Resume Next s_prn = "Adobe PDF" 'インストールされているPDFプリンタの名前 oldprn = ActivePrinter 'アクティブプリンタを取得 If InStr(oldprn, s_prn) = 0 Then '切替えたいプリンタがアクティブプリンタでない場合 flg = False 'プリンタ切替フラグ For i = 0 To 99 ActivePrinter = s_prn & " on Ne" & Format(i, "00") & ":" '「"プリンタ名"on NeXX:」形式PC用 ActivePrinter = "Ne" & Format(i, "00") & ": の " & s_prn '「NeXX: の "プリンタ名"」形式PC用 If ActivePrinter <> oldprn Then flg = True 'プリンタ切替成功 Exit For End If Next i If flg = False Then 'プリンタ切替失敗の場合 MsgBox "プリンタ名:" & s_prn & " が見つかりません。" Exit Sub End If End If ActiveSheet.PrintOut ActivePrinter = oldprn 'アクティブプリンタを元に戻す MsgBox "終了しました。" End Sub

  • EXCEL VBAでプリンタの設定方法について

    EXCEL VBAのプリンタの設定方法について質問があります。 Dim oApp As Object Dim WFM As Strin WFM = "\\Cl111\フォルダ\ファイル\" &Range("C3").Value & ".doc" Set oApp = CreateObject("Word.Application")  ’ワード起動 oApp.Visible = True oApp.Documents.Open WFM  ’文書を開く Application.ActivePrinter = "AAA on Ne00:"  ’プリンタ設定 oApp.activedocument.PrintOut Copies:=1, Background:=False  ’印刷 oApp.Quit SaveChanges:=False  ’ワード終了 Set oApp = Nothing このようなコードで、(1)ワードを開き、(2)プリンタを設定し、(3)印刷をする、という作業をしたいのですが、 Application.ActivePrinter = "AAA on Ne00:" ではプリンタの設定が変わらず、通常使うプリンターで印刷がされてしまいます。 ワードを開いて印刷することで何か特殊なコードが必要なのではないかと思うのですが、調べても該当するものが出てきませんでした。 どうぞよろしくお願いいたします。

  • VBAに関するメッセージ

    よろしくお願いいたします。 下記をやろうとした際、「クリップボードに大きな情報があり.....」なる メッセージが都度出てしまい、次に進みません。 これを回避する方法を教えて頂きたいのですが。 <やりたいこと> 同じ形式の複数のエクセルBOOKに入っている特定の列の特定の行範囲にあるデータを、 別の集計用エクセルBOOKの単一のシートの中に順々にコピーをしていきたいのです。 集計用BOOKの特定の行には、データBOOKのBOOK名が横にずらっと記載されて おり、集計用BOOKに組んだVBAでBOOK名を読み取り、そのBOOK名のデータBOOKを 開き、特定セル範囲(A2:A5)の値をコピーし、集計用BOOKのBOOK名が記載されて いる列に貼り付けしていく。同様に、集計用BOOKの右どなりの列に記載されている BOOK名を読み取り、そのBOOKを開き...と継続し、集計用BOOKにデータ用BOOK 名が記載されていない列まできたら、Do Whileステートメントを終了する、ということ をやりたいのです。 <問題点> 実行させると、「修飾子が不正です」なるメッセージが出てしまい 先に進まないのです。 <プログラム> Sub W() Dim ファイル名 As String Dim 列番号 As Long 列番号 = 4 Do While Cells(2, 列番号).Value <> "" ファイル名 = Cells(2, 列番号).Value Workbooks.Open "D:\学校\データ\" & ファイル名 & ".xlsx" Range("A2:A1000").Copy ThisWorkbook.Activate ActiveSheet.Paste Cells(5, 列番号) ファイル名.Activate Workbook.Application.CutCopyMode = False ActiveWorkbook.Close 列番号 = 列番号 + 1 Loop End Sub <エラー発生部分> ファイル名.Activate <補足> 「ファイル名.Activate Workbook.Application.CutCopyMode = False」 という部分はもともとなかったのですが、データが入っているBOOKを閉じる際 「クリップボードに大きな情報があります。この情報...」なるメッセージが 出てしまったため、回避策として追加修正したものです。 すみませんお手数ですが、よろしくお願いいたします。

専門家に質問してみよう