Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1144 / 13645 ツリー ←次へ | 前へ→

【76062】CSVファイルの中身をエクセルに落としたい! 彼方 14/9/12(金) 1:48 質問[未読]
【76063】Re:CSVファイルの中身をエクセルに落とした... 独覚 14/9/12(金) 10:10 発言[未読]
【76067】Re:CSVファイルの中身をエクセルに落とした... γ 14/9/12(金) 23:00 発言[未読]

【76062】CSVファイルの中身をエクセルに落とした...
質問  彼方  - 14/9/12(金) 1:48 -

引用なし
パスワード
   はじめまして。
よろしくおねがいします。

【こう動かしたい】
1.バッチファイルにて作成したActiveDirectoryのユーザ一覧をCSVに落としたファイルがあります。
2.VBA(エクセル)にて、項目名、標題等を設定しているので、その中にCSVの中身を落としたい(日本語が不自由ですみません)(例でいうと△の部分にCSVの中身を入れたいのです)
(例)
標題:×社 社員一覧
名前 性別 年齢
△△ △  △

【困っていること】
CSVにデータは入っているのですが、いざVBAを実行するとCSVデータを入れたい所はいつも空っぽになってしまいます。なぜ、エクセルにCSVの中身がコピーされていないのでしょうか?

【ソース】

Dim cmd1 as string
dim csvname as string
dim i as long

WorkWs.Activate

If WorkWs.Range("A2").Value=""then
i=2
Else
hlast=WorkWs.Range("A1").End(xlDown).Row
i=hlast+1
End if
csvname=設定Ws.Range("C20").Value & "\date.csv"

With ActiveSheet.QueryTables.Add(Connection:=_"TEXT;"&csvname,Destination:=Cells(i,1))

.FieldNames = True
…以下延々と定義が続く
End With

Kill csvname

End sub

↑の処理が怪しいかなと思ったのですが、このソースにおかしい所はあるでしょうか?
宜しくお願いします。

【76063】Re:CSVファイルの中身をエクセルに落とし...
発言  独覚  - 14/9/12(金) 10:10 -

引用なし
パスワード
   ▼彼方 さん:
念のため。
>With ActiveSheet.QueryTables.Add(Connection:="TEXT;"&csvname,Destination:=Cells(i,1))
を("TEXT;"の前の「_」は消し忘れとして)
>With WorkWs.QueryTables.Add(Connection:="TEXT;"&csvname,Destination:=WorkWs.Cells(i,1))
とシートを明記してはどうでしょうか?
ただ、これが標準モジュールに記載されているんだったら
WorkWs.Activate
があるので影響ないかなとも思えるけども。

これでだめなら、あとは省略されてる定義部分とCSVの内容を見比べていく、
ブレークポイントを設定して一行ずつ実行させていってみるとかかな?

【76067】Re:CSVファイルの中身をエクセルに落とし...
発言  γ  - 14/9/12(金) 23:00 -

引用なし
パスワード
   # かなり蛇足です。

Refreshメソッドは実行されているのですか?
いずれにしても、テキストファイルの読み込み部分は
マクロ記録をもとにしてコードを書くと間違いがないでしょう。

ステップ実行して、動作確認することをお勧めします。
ステップ実行の仕方は、
ht tp://hp.vector.co.jp/authors/VA016119/step/step01.html
を参照。ht とtp の間のスペースを取って下さい。

なお、
(1)変数は必ず宣言して使いましょう。
ツール - オプションで、
変数の宣言を強制する にチェックしておくと、
今後新たに作るモジュールには、自動的に Option Explicitが
挿入されるはずです。
(2)
Rangeの操作にあたって、シート指定があるもの、無いもの、ActiveSheetの使用
などが混在しています。統一したほうがよいでしょう。

1144 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free