[[20180328173152]] 『マクロエクセルを開くたびエラー』(as) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロエクセルを開くたびエラー』(as)

エクセルにマクロを追加し作成したところ、毎回このエクセルを開くたびに「ファイル名・・を開くたびに実行されるマクロが見つからないため、エラーが発生する可能性があります。」と出てきます。
このエラーを消す方法はありますか?

< 使用 Excel:Excel2016、使用 OS:Windows7 >


わからなかったので代理検索
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1426794844

これがヒントにならないですかね?
(もこな2) 2018/03/28(水) 17:57


出来ませんでした。
(as) 2018/03/29(木) 10:50

コードになります。

Sub Macro3()
Dim fName As String, ws As Worksheet

Application.ScreenUpdating = False

    fName = Application.GetOpenFilename("テキスト文書,*.tsv")
    If fName = "False" Then Exit Sub

    Sheets("Result").Select

    Range("A2:J12").Select
    Selection.ClearContents
    Range("A2").Select
    Sheets("Result").Select

    Set ws = Sheets("Result")

     With ws.QueryTables.Add(Connection:="TEXT;" & fName, Destination:=ws.Range("A2"))
    Sheets("Result").Select

        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & fName, Destination:=Range("$A$2"))
        .Name = fName
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 932
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
        End With

    End With
End Sub

(as) 2018/03/29(木) 11:02


ブックを開くだけでメッセージが表示されるならば、ご提示のマクロのせいではなく、ThisWorkBook以下のWorkbook_Openプロシジャか、標準モジュールの Auto_Openプロシジャを書いているのではないかと思います。 調べてみてください。
(???) 2018/03/29(木) 11:51

ThisWorkBookは空白になっています。
このコードは標準モジュールのModuleに記載しています。

(as) 2018/03/29(木) 13:49


ブックをコピーしても同じ現象になりますよね? Macro3を消すと、エラー表示しなくなるのですか?
(???) 2018/03/29(木) 15:02

Macro3を消すとマクロが無くなるのでエラーは出なくなります。
コピーしても改善しませんでした。

このマクロはテキストファイルを読み込んで、読み込んだ値を別シートから参照できるようにしています。
(as) 2018/03/29(木) 15:17


ブックを開くとエラーというのは、このマクロが入ったブックを開くだけで発生するのかと思ったのですが、もしかしてMacro3を動かし、タブ区切りのファイルを開くとエラーなのですか?(それは、「毎回このエクセルを開くたびに…」という説明と違うのですが)

TSVというのは標準的なファイルではなく、タブ区切りテキストをそう名付けているだけのローカルルールと思いますが、ファイルをメモ帳等のエディタで開く事はできますか?
(???) 2018/03/29(木) 16:22


あと、マクロ内で気になるのは、Destination:=Range("$A$2") の部分でシートオブジェクトを省略しているので、「Result」シート以外がアクティブだと問題が出るかも?、という点(ws.Range("A2") にすべき)と、QueryTables.Add を2回実行している点。 1回だけ読み込めば良いのでは?
(???) 2018/03/29(木) 16:27

私もくわしくないので、確実におかしいとはいえないですが、
QueryTablesのプロパティをたくさん設定してるけど、規定値のもの結構あったりしませんか?
.TextFilePlatform = 932 'shift-JISで読み込む(既定値で省略可)みたいな・・・・
(もこな2) 2018/03/29(木) 16:42

エラーが出るのはこのエクセルファイルを開くたびに出るエラーで、マクロ実行時はエラーが出ません。

TSVファイルの中身はいかになります。一部抜粋しています。
20 -24 -17 16
26 -24 -16 17
23 -22 -18 17
23 -21 -18 18
20 -21 -16 16
(as) 2018/03/29(木) 17:10


なるほど、取り込み終わって保存したブックを開くとエラー表示なのですね。やっと状況が判った…。

おそらく、クエリテーブルをどんどん追加作成してしまい、どこかで問題が出たのでしょう。 貼りつけていそうなセル範囲またはシートを全て削除してから新シートを作り直す(最悪、新規ブックにマクロを移す)と直るように思いますが、どのセルがそうなのかは、一見して判らないです。(右クリックすると、ポップアップの中に「テキストファイルのインポートの編集」というのがあれば、対象セル)

あとは、「データ」−「既存の接続」を確認してみてください。過去に作成したクエリテーブルの数だけブック内接続が出てくると思いますので、エラーになっていたりしないでしょうか?
(???) 2018/03/29(木) 17:46


>あとは、「データ」−「既存の接続」を確認してみてください。過去に作成したクエリテーブルの数だけブック内接続が出てくると思いますので、エラーになっていたりしないでしょうか?

いくつかありましたが、エラーは出ていませんでした。
(as) 2018/03/29(木) 17:53


では、新規ブックで同じマクロを動かしてみてください。QueryTables.Add は1回だけですよ?(条件違いで2回連続のまま実行では、また壊しかねないです)
(???) 2018/03/29(木) 18:02

無事に解決出来ました

クエリが邪魔をしていたようです。
クエリの削除をマクロにさせれば大丈夫でした。
自分で削除するとなにか問題がありそうでした。
(as) 2018/03/29(木) 18:23


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.