• 締切済み

Refreshで落ちる

初めて投稿します。 今後よろしくお願いします。 早速質問なんですが、 CSVファイルをインポートし、Excelファイルに貼り付ける下記処理なんですが、 Gobj_ExcelApp.Worksheets("W_" & Gtbl_NamePrsrvr(Wint_IterEN).Mstr_SheetName & "_" & Wint_IterSN).Activate Set Wobj_CsvData = Gobj_ExcelApp.ActiveSheet.QueryTables.Add( _ Connection:="TEXT;" & Wstr_CsvPath & "\" & Gtbl_NamePrsrvr(Wint_IterEN).Mstr_CsvName(Wint_IterSN) & ".csv", _ Destination:=Gobj_ExcelApp.ActiveSheet.Range("A1")) With Wobj_CsvData .Name = Gtbl_NamePrsrvr(Wint_IterEN).Mstr_CsvName(Wint_IterSN) .RefreshPeriod = 0 .TextFileStartRow = 1 .TextFileParseType = 1 .TextFileTextQualifier = -4142 .TextFileCommaDelimiter = True .TextFileColumnDataTypes = Wint_DataType .Refresh BackgroundQuery:=False End With Set Wobj_CsvData = Nothing .Refresh BackgroundQuery:=Falseのところで"アプリケーション定義またはオブジェクト定義のエラーです。"というエラーでプログラムが終了します。 尚、同じプログラムを並行で10本実行しています。 なにかいい解決法はないでしょうか? よろしくお願いします。

みんなの回答

回答No.3

二行をまとめるなら .Refresh; BackgroundQuery=False ではなかろうかと・・・・ VBで確認できないので 自信なし

全文を見る
すると、全ての回答が全文表示されます。
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

その時点で出るということはファイルのパスが間違っているというのが一番に考えられますが。 ためしにC直下にでもCSVファイルを置いて、パスも直打ちでやってみたらどうでしょう。

t-miyaaan
質問者

補足

すみません、情報不足でしたね。 コードを全てのせることはできなかったので一部分のみのせてます。ちなみに600ファイルできる処理でそのうち約10ファイルだけ毎回異常終了します。 ファイルのパスも間違ってないです。 多分、同時に10本走らすところに問題があると思うのですが(ちなみに1本だとこのようなエラーはでないです。)、どうしてもこちらのシステムの機能として必要なのです。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

「:」があるのは気のせいでしょうか? 最近VBしていないので 正規の表記かどうかわかりませんが・・・

t-miyaaan
質問者

補足

気のせいじゃないです。 1行で書くとそう書くみたいです。 ちなみに2行で書くと .BackgroundQuery = False .Refresh みたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • タブ区切りのファイルを読み込む

    下記のコードでタブ区切りのファイルを読み込もうとしていますが、 Err.Numberの1004が発生して、先に進めません。 カンマ区切りは動作しています。 お手数をお掛けしますが、ご教示ください。 With Selection.QueryTable .Connection = "TEXT;" & nm .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=True End With 以上、よろしくお願いします。

  • Excel "A1"からのデータ取込

    お世話になります。 Excel VBAを使って開発しています。 下記のコードでCSVファイルを読み込んでいます。 データが必ず"AC1"にデータが取込されています。 "A1"からデータを取り込むようにしたいときは、どうすればいいのでしょうか ActiveWorkbook.Worksheets("system-view").Activate sheets("system-view").Select Cells.Select With Selection.QueryTable .Connection = "TEXT;" & nm .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=True End With 以上、よろしくお願いします。

  • データの取込におけるドライブの指定について

    エクセルのSheet1に設置した集計ボタンによって、Sheet2にCSVを取り込む処理をさせました。 しかし、csvのあるドライブが常に固定されていないためにドライブを選択できるようにしたいのです。 下記はマクロの記録で作成した記述ですが、3行目のHをSheet1のセルA1の値で指定させる方法を教えて下さい。 Sheets2.Select Cells.Select With ActiveSheet.QueryTables.Add(Connection:="TEXT;H:\売上集計表.csv", _  Destination:=Range("A1")) .Name = "売上集計表_29" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = xlWindows .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .Refresh BackgroundQuery:=False End With 素人のため、上記マクロをApplication.Run"@"で処理させています。 他にスマートな記述がありましたらその方法も教えて下さい。

  • 今日と昨日の日付.CSVファイルを選択し読み込む

    日付.csvのファイルが下記のように同じフォルダーに自動書き出しされています。 20171101.csv 20171102.csv 20171103.csv このファイル群から、今日と昨日のファイルだけを選択して、一枚のxlsシートに 書き出すマクロはどうすればいいでしょうか? 現在は、下記11行目を日々書き直して処理しています。 よろしくご教示をお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+a ' Range("B4:E10000").Select Selection.ClearContents Range("B4").Select With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;Z:\bme280-data\20171130.csv", Destination:=Range( _ "$B$4")) .Name = "No1" .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 = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False Call Macro2 End With End Sub

  • データ読み込み→数行ごとの折り返しについて

    このようなマクロを作りました。 ------------------------------------------------- Sub test() 'TXTファイル読み込みダイアログボックス Dim FileToOpen As String FileToOpen = Application.GetOpenFilename("テキストファイル (*.txt), *.txt") '読み込んだファイルの計算 With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileToOpen, Destination:=Range("B11")) ' .Name = "*" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = xlWindows .TextFileStartRow = 4 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9) .Refresh BackgroundQuery:=False End With End Sub ------------------------------------------------- これだけでは、B列に並んでしまうだけなのでこれを20データごと次の列に入力できるようにしたいのですがいろいろ調べたのですがわかりませんでした。 読み込むテキストは100行あると考えてください わかる方がいましたらよろしくお願いします。

  • excel2007マクロ複数のtxtファイル取り込みについて

    excel2007マクロ複数のtxtファイル取り込みについて 複数のtxtファイルを1つのシートに1つのファイルを取り込むようなマクロを作成したいのですが上手くいきません。以下は実際の入力内容です。このマクロを実行すると下から5行目の .Refresh BackgroundQuery:=False の箇所にエラーが表示されるのですが、解決方法がわかりません。 わかりにくい質問で申し訳ありませんがお答え頂けると助かります。 宜しくお願いします。 Sub Macro4() ' ' Macro4 Macro ' ' Dim i As Integer For i = 1 To 10 With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Documents and Settings\owner\My Documents\test3\BD3.ds0_i.txt", _ Destination:=Range("$A$1")) .Name = "BD3.ds0_i" .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 = True .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = True .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Sheets("Sheet(i+1)").Select Next i End Sub

  • エクセルVBAでCSV読み込みについて質問します。

    エクセルVBAでCSV読み込みについて質問します。 外部データの取り込みマクロを自動記録で作成しましたが、 csvファイル名が決まってしまうで、他のCSVファイルに展開できません。 できれば、マクロ実行(ファイル選択)ボタンを押すとウィンドウが出てきて、 任意の場所にあるCSVファイルを選択できるようにできないでしょうか? マクロは、書き込むエクセルブックが開いている状態からスタートし、シート名は共通です。 自動記録で完成したマクロは以下の通りです。 With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:¥Documents and Settings¥USER¥My Documents¥VBA¥マクロ¥取り込み¥TEST1.csv" _ ’”¥”が誤変換されるので、直接入力しました。      , Destination:=Range("M6")) , Destination:=Range("M6")) _ , Destination:=Range("M6")) .Name = "290TEST1" .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 = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _ 2) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 6 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 4 '以下、続くので省略しました。 End Sub どなたか、お助けお願いします。

  • EXCELのVBAで元のブック名へ戻す方法

    得意先サブマスタ作成.xlsmというブック名でマクロを作成しています。 その中でCSVファイルを読み込んでエクセルへ変えて保存をしています。 With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\*******\Desktop\得意先変換マスタ.csv", Destination:=Range("$A$1")) '.CommandType = 0 .Name = "得意先変換マスタ" .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 = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:\Users\honb014\Desktop\得意先変換マスタ.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Application.DisplayAlerts = True このコードで行っているのですが、実行すると当然ですがアクティヴなブック名は得意先 変換マスタ.xlsxになっています。 これを元の得意先サブマスタ作成.xlsmに戻す方法はありますか? マクロでこの後に続く箇所で上記の得意先変換マスタ.xlsxを使用する際にエラーが出て しまい、このような質問をさせていただきました。 宜しくお願い致します。

  • このマクロ処理をVBAにしたいのですが…

    テキストファイル→Excelへの取込み処理をVBAで記述したいのですが、上手く行きません。どなたか、ご存知の方いらっしゃいましたらご回答よろしくお願いします。 マクロ処理で試すとこんなカンジなのですが… With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\temp\S5097.txt", _ Destination:=Range("A3")) .Name = "SXXXX" .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 = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileOtherDelimiter = "|" .TextFileColumnDataTypes = Array(1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub

  • CSVデータをEXCELシートに展開したい

    CSVデータをEXCELシートに展開しようとしています。 シート1にボタンを用意して、クリックするとシート2に展開されるというようなことをしたいのです。 以下のコード(マクロを組んで作られるコードです)だと、シート2に取り込まれないです。 どのようにすればシート2に展開されるでしょうか? Private Sub CommandButton2_Click() Dim SH As Worksheet ' Set SH = Worksheets("Sheet2") With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\temp\test1.", _ Destination:=Range("A1")) .Name = "test1 .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = xlWindows .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .Refresh BackgroundQuery:=False End With よろしくお願いします。