Excel2007で.xlsxでsaveする時にdialogを非表示するには?

解決


yuriyuri  2007-10-27 08:39:47  No: 137967

Excel2007 VBAを用いてIEを操作させデータ収集し、自動的に記録しようと思っています。。
ファイルがかさばるため、マクロなしのブックとして保存したいのですが、必ず確認ダイアログが出てきて『はい』ボタンを押さなくてはなりません。。
マクロ記録でのサンプルコードは以下です。

    ChDir "C:\Documents and Settings\管理者\デスクトップ\Excelファイル"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\管理者\デスクトップ\Excelファイル\データ20071026.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

このコードを実行した後に現れるダイアログを非表示にするか、または『はい』ボタンを自動で押す類の、追加コードを教えていただけないでしょうか?
完全自動化を目指しております。

Excel  VBA歴やっと1年の初心者です。
どんなささいなアドバイス・ヒントでも結構なので、どうぞよろしくお願いします。


魔界の仮面弁士  2007-10-27 19:16:48  No: 137968

この掲示板は、
> VB2-VB6と.NET
であって、[VBA]用ではなかったり。

> マクロなしのブックとして保存したいのですが、
「マクロ入りブック」を xlsx 化しようとするから問題がでるのでしょう。

処理を行うマクロブック(xlsm)と、データを書きこむブックとを
分けておいてはどうですか?
データブック側にはマクロを含めないようにすれば、保存時の
『次の機能はマクロなしのブックに保存できません』の問い合わせも
無くなりますよね。

> ダイアログを非表示にするか
DisplayAlerts プロパティです。


yuriyuri  2007-10-27 23:06:16  No: 137969

魔界の仮面弁士さんありがとうございました。

⇒DisplayAlerts プロパティの案

    Application.DisplayAlerts = False

    ChDir "C:\Documents and Settings\管理者\デスクトップ\Excelファイル"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\管理者\デスクトップ\Excelファイル\データ20071026.xlsx", _
        FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    Application.DisplayAlerts = True

  以上のコードにて問題なく通りました。

⇒処理を行うマクロブック(xlsm)とデータを書きこむブックとを分ける案

  プログラミングという観点からのご指摘、まさに目から鱗です。
  おっしゃるとおりです。上記の案では、汎用性という面ではまったく応用が利かないことに気付きました。
  今後はご指摘のような、スマートなプログラミング設計を心掛けます。

⇒板違いのご指摘

  書き込んでから、この質問はVBAというよりは、むしろエクセルそのものへの質問じゃないかということに気付きました。
  さらにこの掲示板はVBAですらも対象としていなかったんですね、お恥ずかしい次第です。
  2007/03/26にもVBA関連の質問をしておりまして、皆様には大変ご迷惑をおかけしました。
  お詫び申し上げます。
  今後は、適切な掲示板において質問するようにします。
  魔界の仮面弁士さん、今後ともどうぞよろしくお願いします。
  では失礼します。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加