
No.1ベストアンサー
- 回答日時:
CSVファイルはDOS時代からの、ステートメントコマンドで読めます。
いま事情でアクセスが使えないので、エクセルでテスト
しました。参考になればと上げます。
アクセスにエクセルからインポートすることも出来ることですし。
複数あるCSVファイル名をどう指定するか
キーインで聞くか、下記のように配列に定義するか
方法が決めかねていますが。
TransferTextなど使わず、GoTo文多用の拙いもので済みません。
途中のMsgboxは確認用ですから、本番では削除。
Arrayの中のファイル名は自分の場合のものを
入れる、My Documentsのフォルダ名も変える
こと。
Line Input#文を使ったところがミソです。
Sub test01()
i = 1
f = Array("csv1", "aaa", "a11")
k = 0
p05:
Open "c:\my documents\" & f(k) & ".csv" For Input As #1
p02:
If EOF(1) Then GoTo p01
Line Input #1, a
MsgBox a
s = 1
j = 1
p03:
p = InStr(s, a, ",")
If p = 0 Then p = Len(a) + 1
Cells(i, j) = Mid(a, s, p - s)
If p > Len(a) Then GoTo p04:
s = p + 1
j = j + 1
GoTo p03
p04:
i = i + 1
GoTo p02
p01:
Close #1
k = k + 1
If k <= UBound(f) Then GoTo p05
End Sub
この回答への補足
i = 1
f = Array("社員1", "aaa", "a11")
k = 0
p05:
Open "c:\mydata\" & f(k) & ".csv" For Input As #1
上記の形で実施しましたところ、「社員1.csv」のデータはインポートしましたが、次の2つ目の「社員2.csv」のファイルを読み込めませんでした。(エラーメッセージ”ファイルがみつかりません”)全くの素人のため力不足ですみません。
解決策を教えていただけたらうれしいです。
No.3
- 回答日時:
#1です。
f= Array("社員1", "aaa", "a11") と2番目の要素をそのままにしてはいけません。aaaは私の個人的な、偶々在ったファイルの名ですから。
f = Array("社員1", "社員2", "a11") と変え、また
a11も貴殿の場合の3番目のファイル名を””で囲って置換えてください。あと4つ目以降も同じく、カンマで区切って付け加え、長くなるようなら、スペースとアンダーバーの「継続行の約束書式」を使い次行に続けます。
まあそれにしても限りがあります。数十以上の時は、私なら、エクセルのA列セルに名前を入れて読むとかします。
またあるフォルダの中のCSVファイル名を捕まえるプログラムもDIR関数で出来ます。過去の質問に例があるはずです。
素人で初めての取り組みでしたが、ご指導のとおりDIR関数を使った過去の質問を参考に問題解決できました。素早い対応と親切さに感謝いたします。これを機会に次ぎの新たな挑戦をしたいと思います。本当にありがとうございました。
No.2
- 回答日時:
#1です。
#1を上げて思い出しました。カンマで区切られた文字列を、区切りで取り出す方法にSplit関数が使えます。下記などを参考に使っていただけば、プログラムが判りやすく、短くなるでしょう。Sub test02()
a = "aa,sss,ddd,1"
' a = "1,23,sdf2,22"
b = Split(a, ",")
MsgBox b(0)
MsgBox b(1)
MsgBox b(2)
MsgBox b(3)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
マクロから出力されるcsvのダブ...
-
バッチでCSVを処理する時、空の...
-
エクセル形式のファイルの読み込み
-
csvファイル 項目数取得
-
CSV出力して、MS/EXCELで開くと...
-
複数のcsvファイルをフォルダご...
-
Visual C++によるcsvファイルの...
-
VBScriptからEXCELのVBAコマン...
-
EXCEL|csvで保存→開くcsvを閉じる
-
エクセルVBA 大容量CSVファイル...
-
VBSでソート&ファイル分割
-
CSV形式での保存時に”文字列...
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
xcopyコマンドの進行状況を表示...
-
ExcelブックをGoogleスプレッド...
-
ハイフネーションされている英...
-
Wordで差込印刷した後に別々の...
-
frxファイルの役目
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
マクロから出力されるcsvのダブ...
-
バッチでCSVを処理する時、空の...
-
CSV出力して、MS/EXCELで開くと...
-
csvファイルでの日付設定「yyyy...
-
CSV形式での保存時に”文字列...
-
【C#】パス名で無効な文字
-
エクセルVBA 大容量CSVファイル...
-
【エクセルVBA】お願いします。...
-
データ解析ソフトRでのファイル...
-
エクセル形式のファイルの読み込み
-
【エクセル マクロ】読み込ん...
-
CSVファイルの項目行を削除...
-
csvファイル 項目数取得
-
VBAでcsvファイルを読み込んで...
-
特定ファイルの一括削除
-
VBAでCSVファイルのインポート...
-
VBAでの下記のプログラムについ...
-
VBA 毎日取得するデータを反映...
-
csvファイルを列数ごとに分割す...
おすすめ情報