はぁ...また懺悔になってしまうのでしょうか。
最近、メイン環境が[win2000/xl2000]から[winXP/xl2003]に変わってしまった事もあって気づいたんですが、
結論から言うとxl2003sp3ではQueryTables.Deleteすると[名前定義]も削除されます。
■QueryTables.Add/.Deleteと.Names().Deleteの記事アップ当時、xl2003も社内にあったので検証したような記憶があるんですけどね。(その時sp3だったかどうかまでは憶えてません)
また嘘つきになっちゃうのかぁと落ち込んだのですが、たまたまspがあたってない2003があって、そちらで実行すると依然、名前定義が残ります。当時はsp3ではなかったのでしょう、多分。
どのUpdateで変更されたのかわかりませんが、少なくとも2003のsp3では改善されているようです。
(ちなみに2000sp3は変わらず)
VBEのマウスホイールの件や、このQueryTableのName問題など、sp3で色々と改善されたのは良いンですけど、何が改善されたかもうちょっと情報が欲しいところです...よねぇ。
ここからOffice2003_SP3Changes.xls落として見たけど見つけられなかった...英語だし。
一応、確認用コード。
(2009.09.14追記)
#Office2003_SP3Changes.xls というのは上記リンク先
#http://support.microsoft.com/kb/923618/ja
#からダウンロードできる『Office 2003 SP3 で修正される Office 2003 Service Pack 2 以降の問題の一覧が掲載された Microsoft Excel ブック』の事です。(英語版のみ)
最近、メイン環境が[win2000/xl2000]から[winXP/xl2003]に変わってしまった事もあって気づいたんですが、
結論から言うとxl2003sp3ではQueryTables.Deleteすると[名前定義]も削除されます。
■QueryTables.Add/.Deleteと.Names().Deleteの記事アップ当時、xl2003も社内にあったので検証したような記憶があるんですけどね。(その時sp3だったかどうかまでは憶えてません)
また嘘つきになっちゃうのかぁと落ち込んだのですが、たまたまspがあたってない2003があって、そちらで実行すると依然、名前定義が残ります。当時はsp3ではなかったのでしょう、多分。
どのUpdateで変更されたのかわかりませんが、少なくとも2003のsp3では改善されているようです。
(ちなみに2000sp3は変わらず)
VBEのマウスホイールの件や、このQueryTableのName問題など、sp3で色々と改善されたのは良いンですけど、何が改善されたかもうちょっと情報が欲しいところです...よねぇ。
ここからOffice2003_SP3Changes.xls落として見たけど見つけられなかった...英語だし。
一応、確認用コード。
Option Explicit Sub test2003sp3() Dim s As String Dim i As Long s = "http://blog.goo.ne.jp/end-u" With Sheets.Add For i = 1 To 5 .UsedRange.ClearContents With .QueryTables.Add(Connection:="URL;" & s, _ Destination:=.Range("A1")) .RefreshStyle = xlOverwriteCells .AdjustColumnWidth = False .WebFormatting = xlWebFormattingNone .Refresh BackgroundQuery:=False Debug.Print .Name .Delete End With Next MsgBox "Query:= " & .QueryTables.Count & vbLf & _ "Name:= " & .Names.Count End With End Sub
(2009.09.14追記)
#Office2003_SP3Changes.xls というのは上記リンク先
#http://support.microsoft.com/kb/923618/ja
#からダウンロードできる『Office 2003 SP3 で修正される Office 2003 Service Pack 2 以降の問題の一覧が掲載された Microsoft Excel ブック』の事です。(英語版のみ)