アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルマクロに詳しい方、宜しくお願いしますm(_ _)m

マクロの自動記録後にエラーが出て、自分なりに修正しても
“450”“438”エラーが
出てしまいます。。
何も分かっていない超初心者です。。解決方法を教えてください。
m(_ _)m

マクロ自動記録でしたことは、

①まずsheet1に、C:\買い物リスト\TXT\買い物.csvを、
テキストファイルウィザードでカンマ区切りのみで、「データのプレビュー」を全選択して“文字列”で$A$1に開く。

②次にsheet2に、C:\買い物リスト\TXT\欲しかったもの.csv.を
テキストファイルウィザードでカンマ区切りのみで、「データのプレビュー」を全選択して“文字列”で$A$1に開く。

③sheet1のC2に、=IFERROR(VLOOKUP(A2,Sheet2!$A$2:$C$2976,3,0),20)を入力して実行。

④そのVLOOKUP関数で返ってきた値を、一番下までオートフィル。

⑤sheet1のD2に、=B2&","&C2 を入力

⑥返ってきた値を、一番下までオートフィル。

⑦その返ってきた値を“ctrl+shift+↓”で全選択し(D列のみ全選択)コピー。

これで完了です。

マクロの記録を行ったところ、エラーで返ってきて、デバッグを開いたら、
1行目の
ActiveSheet.QueryTables.Add Destination:=Selection

のところに“450”エラーが返ってきたので、まずActiveSheet.QueryTables.Add(Connection:="C:\買い物リスト\TXT\買い物.csv", Destination:=ws.Range("A1"))
と入力したのですが、

その次は2行目の
ActiveSheet.QueryTables.QueryTable.Refresh

のところで“438”エラー“オブジェクトは、このプロパティーをサポートしていないません。”と返ってきました。ここは何をしてもエラーが直らなかったです。。


Sub Macro2()
'
' Macro2 Macro
' ○○によるマクロの記録、 日付:2018/07/11
'

'
ActiveSheet.QueryTables.Add Destination:=Selection
ActiveSheet.QueryTables.QueryTable.Refresh
ActiveWindow.ScrollRow = 1
Sheets("Sheet1").Activate
Windows("Book17").Activate
Sheets("Sheet2").Activate
ActiveSheet.QueryTables.Add Destination:=Selection
ActiveSheet.QueryTables.QueryTable.Refresh
Sheets("Sheet1").Activate
Range("C2").Select
Selection.FormulaR1C1 = "=IFERROR(VLOOKUP(A2,Sheet2!$A$2:$C$2976,3,0)," & """" & "20" & """" & ")"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C513"), Type:=xlFillDefault
Range("C2:C513").Select
ActiveWindow.ScrollRow = 487
Range("D1").Select
ActiveWindow.ScrollRow = 1
Range("D2").Select
Selection.FormulaR1C1 = "=B2&" & """" & "," & """" & "&C2"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D513"), Type:=xlFillDefault
Range("D2:D513").Select
ActiveWindow.ScrollRow = 487
Selection.Copy
End Sub


分からないことだらけなのですが、、
どこを直せば動くのでしょうか?解決方法を教えて下さい!どうぞ宜しくお願いします!!

A 回答 (1件)

> ActiveSheet.QueryTables.Add Destination:=Selection


> ActiveSheet.QueryTables.QueryTable.Refresh

マクロの記録を行っても上の様な内容にはなりませんでした、Excelのバージョンによって異なるのかな?
それに、ActiveSheet.QueryTablesはコレクションなので、後ろにQueryTableがくっつくような書き方はできないと思います。

QueryTables オブジェクト (Excel)
https://msdn.microsoft.com/ja-jp/vba/excel-vba/a …


この部分は↓のようにするのではないでしょうか?
こちらでマクロの記録を行い不要部分を削除して作成しました。
Sheet2へ読む方も同様だと思います。

With Worksheets("Sheet1").QueryTables.Add(Connection:= "TEXT;C:\買い物リスト\TXT\買い物.csv", Destination:=Range("$A$1"))
  .TextFileParseType = xlDelimited
  .TextFileCommaDelimiter = True
  .Refresh
End With

こちらの環境は、Excel2010ですが動作しました。
    • good
    • 0
この回答へのお礼

ありがとうございました!
動作しましたm(_ _)m

お礼日時:2018/07/13 10:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!