みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

よろしくお願いします。

投稿日時 - 2007-02-27 22:10:34

QNo.2789467

困ってます

質問者が選んだベストアンサー

ぱっと見ただけでですが、
Set SH = Worksheets("Sheet2")
とシート2を変数にセットしただけで、あとはどこでも使ってないので、ActiveSheetはシート1のままですよね。

Set SH = Worksheets("Sheet2")

Worksheets("Sheet2").Activate
とするか、あるいは

With ActiveSheet.QueryTables.Add(Connection:= _

With SH.QueryTables.Add(Connection:= _
としてみればうまくいきませんか?

投稿日時 - 2007-02-27 22:23:08

お礼

ham_kamoさんありがとうございます。

Worksheets("Sheet2").Activate をいれるとうまくいきました。
それと、SHの使い方ですね。

殆どVBAが解らずにいたので、大変たすかりました。

ありがとうございました。

投稿日時 - 2007-02-28 23:30:01

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問