tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDisplayAlerts
記事No3627
投稿日: 2006/05/09(Tue) 10:18
投稿者BB
[OSのVer]:WindowsXP HomeEdition Version 2002  [VBのVer]:VB.NET 2003

はじめまして。
本掲示板に投稿するのは初めてですが、
しばしばTips一覧などを参考にさせていただいています。
なお、私は、昨年まではプログラミング経験は全くありませんでしたが、
VB.NETを勉強し始めて、ちょうど一年程度経ちました。

さて、VB.NETからExcelを操作する際に、
上書き保存の警告などが表示されないようにするためには、
ヘルプやWebなどを検索して調べたところ、その全てが、
DisplayAlertsプロパティをFalseにすればよい、
と書いています。
しかし、Falseにしても、警告が表示されてしまい困っています。

状況としては、CSVファイルを読み込み、
書式や数式を入力した後、XLS形式で保存する際に、
同一名称のファイルが存在しても、そのまま保存したいのですが、

「この場所にXXXXXXXXという名前のファイルが既にあります。置き換えますか?」

という警告が表示されます。

どなたか、この現象を解消できる方法をご存知でしたら、
是非、教えていただけないでしょうか?

なお、Excelのバージョンは、Excel2003です。

以上、宜しくお願いいたします。

[ツリー表示へ]
タイトルRe: DisplayAlerts
記事No3629
投稿日: 2006/05/09(Tue) 12:16
投稿者EXiGE
If Dir(保存のファイル名) <> "" Then
    ファイルを消しちゃう
End If

ExcelBookの保存

とか・・・w

他の人はどんな方法をとってるんでしょうねぇ

[ツリー表示へ]
タイトルRe: DisplayAlerts
記事No3631
投稿日: 2006/05/09(Tue) 13:52
投稿者花ちゃん
> しかし、Falseにしても、警告が表示されてしまい困っています。

具体的にはどのようなコードを書いておられるのでしょうか?
私がVB.NET 2003 Excel 2002 の環境で試した結果では、ダイアログは
表示しませんでした。

# Excel 2003 では表示するなら別ですが、その環境がないので試してはいません。

[ツリー表示へ]
タイトルRe^2: DisplayAlerts
記事No3632
投稿日: 2006/05/09(Tue) 14:17
投稿者BB
EXiGEさん、花ちゃんさん、返信ありがとうございます。

具体的には、hhttp://www.bcap.co.jp/hanafusa/dotnet/index.htmlで示されていた

'==================  ファイルの保存処理  ==================  
    xlApp.DisplayAlerts = False     '保存時の問合せのダイアログを非表示に設定
    xlSheet.SaveAs(xlFilePath)      'ファイルに保存
    xlApp.DisplayAlerts = True      '元に戻す

を参考にして、

  xlApp.DisplayAlerts = False
  xlBook.SaveAs(<パス+ファイル名>, -4143)
  xlApp.DisplayAlerts = True

というコードを書いています。

以上、宜しくお願いいたします。

> > しかし、Falseにしても、警告が表示されてしまい困っています。
>
> 具体的にはどのようなコードを書いておられるのでしょうか?
> 私がVB.NET 2003 Excel 2002 の環境で試した結果では、ダイアログは
> 表示しませんでした。
>
> # Excel 2003 では表示するなら別ですが、その環境がないので試してはいません。

[ツリー表示へ]
タイトルRe^3: DisplayAlerts
記事No3634
投稿日: 2006/05/09(Tue) 14:55
投稿者花ちゃん
私が試したコードと同様のようですね。

Excel 2002 又は Excel 2000 の環境があればそれで一度試して見て下さい。

SaveAs メソッドは Excel 2002 も 2003 も同じのような事が書いてあったのですが
Excel 2003 のVBA のヘルプで DisplayAlerts プロパティ の解説を読んで見て下さい。
ひょっとしてExcel 2002 と違う事が何か書かれているかも知れません。

[ツリー表示へ]
タイトルRe^4: DisplayAlerts
記事No3635
投稿日: 2006/05/09(Tue) 15:17
投稿者BB
Excel2002も2003のDisplayAlertsのヘルプを見ても、その使用例まで同じですし、
少々、挫折しそうになりましたが、他におかしな点がないかどうか、
自分で作成したコードと、
hhttp://www.bcap.co.jp/hanafusa/dotnet/index.htmlで例示されていたコードを、
一行ずつじっくりと見比べた結果、標記の件、自己解決いたしました。

具体的には、
「マイクロソフト公式解説書VisualBasic.NET実践講座Vol.2活用編」のP117を参考にして、

    xlApp = CType(CreateObject("Excel.Application"), Excel.Application)

というコードを記述していたのですが、それを削除することで、

    xlApp.DisplayAlerts = False

が有効になりました。
なぜ削除すると有効になったのかはわかりませんが、
とにかく、このコードが余計だったようです。

ちなみに、このコードを削除しない限り、

    xlApp.WindowState = Excel.XlWindowState.xlMinimized
    xlApp.Visible = True
    xlApp.Quit()

などのコードも正確に機能しないようでした。

大変お騒がせしました。

今後ともよろしくお願いいたします。



> 私が試したコードと同様のようですね。
>
> Excel 2002 又は Excel 2000 の環境があればそれで一度試して見て下さい。
>
> SaveAs メソッドは Excel 2002 も 2003 も同じのような事が書いてあったのですが
> Excel 2003 のVBA のヘルプで DisplayAlerts プロパティ の解説を読んで見て下さい。
> ひょっとしてExcel 2002 と違う事が何か書かれているかも知れません。

[ツリー表示へ]