dポイントプレゼントキャンペーン実施中!

こんにちは VBA勉強中の者です
VBAでCSVデータの指定列を読み込みグラフを作成するにはどのようなコードを組めばよいのかご教授お願いします

以下のようなCSVデータがあります

A,B,C,D,
あ,い,う,え,
10,20,30,40,
11,20,35,41,
12,20,33,39,
13,20,34,42,




VBAにて、このCSVデータをVBAでエクセルに読み込ませてグラフを作りたいのですが、
D列の3行目(データで言うと40の部分)から下方向のデータを読ませて折れ線グラフを作成したいです
読み込ませたデータもB6セルから下に表示したいです

当方エクセル2010を使用しています

説明不足な部分があるかもしれませんが何卒よろしくお願いいたします

A 回答 (3件)

こんばんは。



セル位置の開始が途中からデータをインポートするとか、いろんな制約ごとがあるようですから、ステップマクロで試しながらでも、マクロを実行してみてください。

'//標準モジュール
Sub CSVImportMacro()
 'No. 10867226 [2817]
 Dim Fname As Variant
 Dim FNo As Integer
 Dim TextLine As String
 Dim i As Long
 Dim buf
 Dim Rng As Range
 Dim Strt As String: Strt = "B6" 'データインポートの最初のセル

 Fname = Application.GetOpenFilename("CSVファイル,*.csv")
 If Fname = False Then Exit Sub
 FNo = FreeFile()
 Open Fname For Input As #FNo
 Do While Not EOF(FNo)
  Line Input #FNo, TextLine
  buf = Split(TextLine, ",")
  With Range(Strt).Offset(i, 0).Resize(, UBound(buf) + 1)
   .Value = buf
   .Value = .Value
  End With
  i = i + 1
 Loop
 Close #FNo
 Set Rng = Range(Strt).Offset(2, 3) '範囲の切り出し
 If i - 2 <= 0 Then MsgBox "インポートに失敗しました。", vbExclamation: Exit Sub
 Set Rng = Rng.Resize(i - 2)
 With ActiveSheet
  .Shapes.AddChart2(227, xlLine).Select
  ActiveChart.SetSourceData Source:=Rng
 End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます
書いて頂いたコードをしっかり読んで理解したいと思います

お礼日時:2018/12/15 14:11

No1です。



>CSVデータの指定した部分だけを取り出すという部分が、
>マクロの記録で出来ないので質問させて頂きました
どのようにして指定部分が決まるのかわかりませんが、読み込んだシートの指定範囲(=必要範囲)のセルをコピペすれば終わりではないの?
セル範囲は固定ではないのかも知れないけれど、方法(メソッド)に関しては記録でもできるし、「VBA勉強中の者です」とは言え、そのくらいはご存じでしょう。

ただし、No1の回答の意図は、決して「マクロの記録で作成しろ」ではなく、
むしろ、「マクロの記録をそのまま使うな」です。
理由に関しては、No1を読んでね。
    • good
    • 0
この回答へのお礼

ありがとうございます
マクロの記録を利用しつつ、勉強していきます

お礼日時:2018/12/15 14:02

こんにちは



>VBA勉強中の者です
とのことですので、何かのヒントにでもなれば・・・

ご質問の内容は、大半の部分については「マクロの記録」で作成可能と思いますので、一通り記録を取ってみることで、処理を行うために必要そうなメソッドがだいたい出そろうはずと思います。

一方で、「マクロの記録」で作成されるものは、お世辞にも参考にできる代物とは言えませんが、一応、動作はするはずです。
このなかで使われているメソッドを順次調べれることで、必要となるであろう知識が得られると思いますので、一通り調べた上でなさりたい処理を再構成すれば宜しいかと思います。
(マクロの記録をそのまま利用したり参考にすることは、お勧めいたしません)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます
ご指摘の通り、大半はマクロの記録でできるものだと思うのですが、CSVデータの指定した部分だけを取り出すという部分が、マクロの記録で出来ないので質問させて頂きました
それも出来るよというのであれば、当方の勉強不足です
申し訳ありません

お礼日時:2018/12/12 18:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!