Excel VBA質問箱 IV

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

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


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

【78836】CSVファイルを指定列に読み込み JJ 17/2/9(木) 16:28 質問[未読]
【78837】Re:CSVファイルを指定列に読み込み β 17/2/9(木) 18:45 発言[未読]
【78844】Re:CSVファイルを指定列に読み込み [名前なし] 17/2/10(金) 9:05 質問[未読]
【78845】Re:CSVファイルを指定列に読み込み β 17/2/10(金) 9:35 発言[未読]
【78846】Re:CSVファイルを指定列に読み込み JJ 17/2/10(金) 11:13 質問[未読]
【78847】Re:CSVファイルを指定列に読み込み β 17/2/10(金) 15:15 発言[未読]

【78836】CSVファイルを指定列に読み込み
質問  JJ  - 17/2/9(木) 16:28 -

引用なし
パスワード
   初めまして、VBAで質問です

CSVファイルの文字列を

例:
master.csvを
エクセルのsheet5 のM1、2.3と可能な限り読み込みをしたいのですが

VBAは触ったことがなく
やり方がわかりません。

勉強のために
説明していただけると
ありがたいです

【78837】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/9(木) 18:45 -

引用なし
パスワード
   ▼JJ さん:

csvファイルもイメージとしては列がたくさんあって行もたくさんありますね。
その中に値もたくさんあるわけです。

>CSVファイルの文字列を
>エクセルのsheet5 のM1、2.3と可能な限り読み込みをしたいのですが

M列に取り込む値は、csvファイルにあるすべての値ですか?
それとも、特定の列のデータですか?

前者だとしたら、『可能な限り』ですから、エクセルの最大行数分の値ですね?
xl2003以前であれば 65536、xl2007以降であれば、1048576。

エクセルバージョンは何ですか?

また、空白の値も取り込むのですか?
それとも、空白の値は取り込まず、値のあるものだけを上づめで取り込むのですか?

【78844】Re:CSVファイルを指定列に読み込み
質問  [名前なし]  - 17/2/10(金) 9:05 -

引用なし
パスワード
   ▼β さん:
>▼JJ さん:
>
エクセルは2010です

CSVにはデータが 合計数 合計時間 日付 の3個を
毎日記録して 改行しながら下へ下へ上書きしています

となると上段からのデータを エクセルのM列に入れたい
ということになります。

お返事ありがとうございます。

【78845】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/10(金) 9:35 -

引用なし
パスワード
   ▼JJ さん:

1.CSVファイルはメモ帳等のテキストエディタで入力しているのでしょうか?

2.入力は 合計数 合計時間 日付[改行] といった入力ですか?
  それとも 合計数,合計時間,日付[改行] といった入力ですか?

3.前者だとすると間のスペースは半角ですか、全角ですか?

4.このCSVファイルをエクセルで開くと 値は A列のみに表示されていますか?
  それとも A,B,C列にわかれて表示されていますか?

5.エクセルへの取り込みですが、既存データに追加ですか?
  それとも、常に1行目から転記ですか?

【78846】Re:CSVファイルを指定列に読み込み
質問  JJ  - 17/2/10(金) 11:13 -

引用なし
パスワード
   ▼β さん:
>▼JJ さん:
>
>1.CSVファイルはメモ帳等のテキストエディタで入力しているのでしょうか?

VB2013からCSV出力しています。
>
>2.入力は 合計数 合計時間 日付[改行] といった入力ですか?
>  それとも 合計数,合計時間,日付[改行] といった入力ですか?

今、確認した所

合計時間[改行] 
合計数[改行] 
日付[改行] 

です。

>3.前者だとすると間のスペースは半角ですか、全角ですか?

下に改行なのでスペースはありません
>
>4.このCSVファイルをエクセルで開くと 値は A列のみに表示されていますか?
>  それとも A,B,C列にわかれて表示されていますか?

A列のみです

>
>5.エクセルへの取り込みですが、既存データに追加ですか?
>  それとも、常に1行目から転記ですか?

M列の既存データにCSVの先頭から取り込みます
sheet5 の場所に毎日追記していきます。

細かく指示して頂きありがとうございます。

【78847】Re:CSVファイルを指定列に読み込み
発言  β  - 17/2/10(金) 15:15 -

引用なし
パスワード
   ▼JJ さん:

処理コードを書いて提示することも考えましたが
もし、本当に初心者でVBAのことが、ほとんどわからないということであれば
以下の操作をマクロ記録すると、コードが生成されます。
エクセルブックとしてCSVファイルを開きますので、もしCSVファイルが
1048576行超のファイルであれば具合悪いですが。

1.ファイルメニューで【開く】
2.すべての種類を指定して、該当の master.csv を指定。
3.読み込まれたCSVファイルのシートのA1を選択してCtrl/Shift/↓
4.選択された領域を Ctrl/c
5.マクロブックのSheet5 を表示。
6.M列データ最終行のセルの次のセルを選択して Ctrl/v。
7.Escキーを押してコピーモード解除
8.CSVファイルを表示して保存なしで閉じる。

どんどん転記していくといつかはエクセルの行の限界(1048576)になり
エラーになりますが、とりあえずは、こういったコードでスタートされてはいかが?

もちろん、マクロ記録されたコードは、そもそもが煩雑なコード記述になっていますので
それをスッキリさせるとか、固定セル領域になっているところを変数化するといった
お化粧直しは必要ですが。

まず、この線でがんばってみてください。
変数化の段階で壁にぶつかれば、それまでに出来上がったコードをアップして
SOSを出してください。

★CSVファイル側、1行目にタイトル行があるなら、
 手順3は A2 を選択して行ってください。

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