• ベストアンサー

VBA マクロ付きExcelファイルを無効で開く

papayukaの回答

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1の方への補足から、B.xls の WorkBook_Open に UserFormを開くイベントがあり、マクロから B.xls を開いた場合は実行したくないって事だと判断しました。 意味が違ったら読み飛ばしてください。Excel97で確認してます。 A.xls と B.xls が同じフォルダ内にあるとして Sub Test() Dim motoB As String, copyB As String, wb As Workbook  motoB = ThisWorkbook.Path & "\B.xls"  copyB = ThisWorkbook.Path & "\New.xls"  FileCopy motoB, copyB       'B.xlsをコピー  Application.EnableEvents = False 'イベントを一時無効化  Set wb = Workbooks.Open(copyB)  'B.xlsのコピーを開く  Application.EnableEvents = True  'イベントを有効に戻す  'ここから  wb.Worksheets(1).Range("A1") = Now  wb.Save  wb.Close  'ここまではサンプルとして適当な処理 End Sub また、別の方法として B.xls の WorkBook_Open を止めて、標準モジュールに Sub Auto_Open()  UserForm1.Show End Sub のようにすると A.xls 側で EnableEvents を使わなくても Auto_Open は実行されません。

sky_blue
質問者

お礼

お礼が遅れて申し訳ありません! はい、papayukaさんが冒頭で言われている事をしたいと思っていました。 EnableEventsというプロパティ?は知りませんでした。 これが処理を止める方法なのですね。 助かりました、ありがとうございました。

関連するQ&A

  • エクセルVBA ファイルが開かない

    Windows XP 2台で使用していますが、1台は下記、記述でファイルが開き、片方は、ファイルが開きません。 何か、記述に問題又は、追加等が必要なのか教えてください。  TFILE = "C:\TEMP\売上データ.XLs"  Workbooks.Open TFILE  よろしくお願いします。    

  • EXCELマクロを無効にして開く方法

    掲題の通りなのですが、EXCEL2007で作成されたマクロ有効ファイル(XLSM形式)を マクロ無効の状態で開く方法が分からず困っております。 マクロの内容は Workbook_Open 処理で、特定セルに入力されている EXCELファイルを開き、自身は閉じるというものです。 Private Sub Workbook_Open() Dim FileName As String '1ファイル目 Range("A2").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate '2ファイル目 Range("A3").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate ・・・・・・繰り返し DoEvents ThisWorkbook.Close End Sub 上記の特定セルに設定してあるファイルパスを変更するためには マクロを無効にして開かなければなりません。 マクロのセキュリティを変更して、「すべてのマクロを無効にする」を設定して 該当のファイルを開けば良い事は分かっているのですが、他に分かりやすい方法で マクロ無効状態で開く方法があれば、ご教授頂ければと思います。

  • エクセル VBA マクロを動かしたときに元々開いているファイルを閉じる・・・

    いつも皆様には大変お世話になっております。 早速質問ですが、 「もしこのマクロが動く時点で他のExcelファイルが開いていたら、警告の上 自ファイルを閉じる、開いていなければ~実行」 という処理をかませたいと思っております。 ここの判定の方法がわかりません。(既にExcelが起動されていたら、でもいいのでしょうか。。。?) 下記のようなマクロを組んでいるので 他のファイルが開いていると厳しい状況です。 bname = "C:\" & Format(Range("q1").Value, "yyyymmdd") & "サンプル" & ".xls" ActiveWorkbook.SaveAs bname Workbooks.Open "C:\サンプル.xls" Workbooks(1).Close 本当は"yyyymmdd"&"サンプル"&".xls"ファイルだけ閉じられればいいのですが、自分の知識では上記のような形でしか動かせません;; もしご存知の方、ご教示ください。よろしくお願いします

  • エクセル マクロが無効になる

    エクセル マクロが無効になる エクセル2003でマクロを作り、2007や2010でそのファイルを開くと互換モードのファイルが開きマクロが無効になってしまいます。セキュリティセンターのマクロの設定の「すべてのマクロを有効にする」にするとマクロが動き出します。マクロの設定を開かなくてもマクロが有効になる方法はないのでしょうか。(このデータを職場のコンピュータの堪能でない人も使うため複雑な方法はできるだけ省きたいのですが)

  • マクロを含んだエクセルファイルについて

    どうしてもやり方がわからず、質問させていただきます。 マクロを含んだエクセルファイルを「マクロを無効にする」で開いた時に、使用不可にしたい(若しくは開かずに閉じたい)のですが、どのようにコーディングしたらよいのでしょうか。

  • エクセルマクロで教えてください。

    先日、皆様から質問の内容がわからないとのお叱りを受けた者です。しばらく出張で不在にしており、昨日出社し皆様からのお叱りに対しもっともであり、質問の内容をうまく伝えられなかった事を反省しております。申し訳ありません。 以下に書いた内容ではいかがでしょうか? アクティブにしないで、ファイルをオープンさせたいのです。 内容:KYAKU_A.XLSを始にオープンします。そのKYAKU_A.XLSには、マクロで、MAST.XLSをAUTO OPENのみのマクロを入れております。そのオープンの内容は次のとおりです。 Workbooks.Open Filename:="C:\Documents and Settings\owner\My Documents\見積書\マクロ.xls" Application.Run "マクロ.xls!流れ" を行い、マクロのみの記載されたXLSを走らせます。 KYAKU_A.XLSのほかに_Bや_Cなど数多くのXLSから、同じMAST.XLSとマクロ.XLSを走らせたいのです。 その際に教えていただきたいのは、MAST.XLSとマクロ.XLSは上記の方法ですとアクティブになってしまいます。画面上では、操作の関係から、KYAKU_A.XLS等の客先内容のみをアクティブにしておきたいし印刷もその客先内容を行うマクロにしたいのですが、MAST.XLSとマクロ.XLSをアクティブにしなければ可能ではないかと思いますが、どなたかどうすれば良いかまた、そのマクロはどのように記載すれば良いかを教えていただきたくお願いします。

  • 【大至急】excel2003 VBAマクロの質問

    excel2003でのVBAマクロを作っているのですが、いまいちよくわからないのです 下記条件を満たすサンプルコードのご教示をお願いします。 ■初期状態 仮にフォルダ、ファイル配置が下記の通りだとします C:\マクロ.xls C:\template.xls C:\aaa\ C:\bbb\bbb_test.xls C:\ccc\ . . . C:\nnn\ ■動作要件 (1)マクロ.xlsは自分のファイルパスを検索する (2)マクロ.xlsと同じフォルダにあるサブフォルダ配下に、各々フォルダ名_test.xlsというファイルを作成する (3)上記(2)で.xlsファイルを作成するとき、template.xlsをコピーして作成する (4)既にサブフォルダ配下に***_test.xlsファイルが存在する場合は作成しない <マクロ実行後の状態> C:\マクロ.xls C:\template.xls C:\aaa\aaa_test.xls ←template.xlsからコピー作成 C:\bbb\bbb_test.xls ←ファイル作成、上書きはしない C:\ccc\ccc_test.xls ←template.xlsからコピー作成 . . . C:\nnn\nnn_test.xls ←template.xlsからコピー作成 (5)上記(1)-(4)を、フォルダがなくなるまで繰り返す 以上です。よろしくお願いします。

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。

  • エクセルのマクロで

    いつもお世話になっております。 エクセル2000ですが、 別のファイルを開いて、そのファイル上で マクロを実行させるときは、 orkbooks.Open Filename:= _   "◆◆◆.xls" '以下実行させるマクロの記述 '(例)◆◆◆上に、データをペーストとか としていますが、 ◆◆◆を別の作業で開いたままですと、 当然この上記マクロが動いてくれなくなってしまいます。 そこで、 1:◆◆◆が開いているかどうか判定する。 2:開いていれば◆◆◆をアクティブにしてマクロ実行 3:開いていなければ、◆◆◆を開いてマクロ実行  とするためには、 どのように記述したらよろしいでしょうか? わかりづらければ、補足しますので、 よろしくお願いします。

  • AccessからExcel内のマクロ無効について

    いつもお世話になっております 以下の内容についてご存知の方、ご教授お願い致します win2000 office2000 マクロを含むExcelファイル内のデータをマクロを無効にし アクセスから取り込むという処理を行いたいのですが、何故か マクロが無効になりません。WinXP、Office2000の環境ですと マクロを実行せず走るのですがwin2000だとダメです win2000だとマクロを無効には出来ないのでしょうか? Dim objMyxl As Object Dim wbk As Excel.Application Dim vrtA As Variant Dim intCnt As Integer On Error GoTo err Set objMyxl = CreateObject("Excel.Application") objMyxl.EnableEvents = False objMyxl.Workbooks.Open Filename:="C:\test\Makuro.xls"  ←マクロが走る vrtA = objMyxl.worksheets(1).Range("A1").CurrentRegion.Value objMyxl.Workbooks.Close objMyxl.Quit objMyxl.EnableEvents = True ちなみに、Excelのマクロ側はこの様な感じでテストしてます Private Sub Workbook_Open() MsgBox "open" End Sub