ここから本文です

エクセルのマクロで、ファイル名を変数で指定した上で、csvファイルをテキストとし...

chr********さん

2014/6/3022:15:41

エクセルのマクロで、ファイル名を変数で指定した上で、csvファイルをテキストとして読み込もうとしています。理由はcsvをそのまま開くと表示がおかしくなるからです。
が、うまくいきません。

vntFileNameという変数にファイル名を格納するところまではうまくいきました。(ファイルのパスも正しく指定されています)


以下のように、マクロの記録で出てきた記述の、ファイルのパスを書くところを変数にするとファイルが開きません。
変数ではなくファイルのパスを書いた状態だと動きます。

ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;vntFileName", _
Destination:=Range("$A$1"))

マクロの記述ではじき出されたマクロは以下です。

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;ファイルのパス", _
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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

ファイル名を変数にしてテキストファイルとして開くことはできないのでしょうか。
ここに詰まっているおかげでこの時間まで残業です。よろしくお願いします。

補足ありがとうございます。そういう書き方なんですね。無事にファイル名を変数で指定することはできました。
しかしまだファイルが開かれません。
エラーにはならないのですが何も開かれない状態です。白紙のままです。
原因が分かれば教えていただきたいです。

閲覧数:
1,408
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2014/6/3023:07:01

ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;vntFileName", _
Destination:=Range("$A$1"))



ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & vntFileName , _
Destination:=Range("$A$1"))

は試しましたか?

  • tra********さん

    2014/7/110:49:53

    >何も開かれない状態です。白紙のままです。
    どのようなプログラムを実行したのでしょうか?
    お示しになったマクロ記録に、直接手を入れたコードで上手くいかないということは無いと思います。
    例えば、こんな感じ。

    xFile = "Data.csv"
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & "C:\AAA\" & xFile , _
    Destination:=Range("$A$1"))
    .CommandType = 0
    .Name = xFile
    ・・・中略・・・
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
    End With

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2014/7/2 10:45:22

なんとか解決しました。ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

nay********さん

2014/6/3023:12:20

"TEXT;vntFileName", _

"TEXT;" & vntFileName, _
ではだめですか?

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる