
こんにちは 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件)
- 最新から表示
- 回答順に表示
No.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
No.2
- 回答日時:
No1です。
>CSVデータの指定した部分だけを取り出すという部分が、
>マクロの記録で出来ないので質問させて頂きました
どのようにして指定部分が決まるのかわかりませんが、読み込んだシートの指定範囲(=必要範囲)のセルをコピペすれば終わりではないの?
セル範囲は固定ではないのかも知れないけれど、方法(メソッド)に関しては記録でもできるし、「VBA勉強中の者です」とは言え、そのくらいはご存じでしょう。
ただし、No1の回答の意図は、決して「マクロの記録で作成しろ」ではなく、
むしろ、「マクロの記録をそのまま使うな」です。
理由に関しては、No1を読んでね。
No.1
- 回答日時:
こんにちは
>VBA勉強中の者です
とのことですので、何かのヒントにでもなれば・・・
ご質問の内容は、大半の部分については「マクロの記録」で作成可能と思いますので、一通り記録を取ってみることで、処理を行うために必要そうなメソッドがだいたい出そろうはずと思います。
一方で、「マクロの記録」で作成されるものは、お世辞にも参考にできる代物とは言えませんが、一応、動作はするはずです。
このなかで使われているメソッドを順次調べれることで、必要となるであろう知識が得られると思いますので、一通り調べた上でなさりたい処理を再構成すれば宜しいかと思います。
(マクロの記録をそのまま利用したり参考にすることは、お勧めいたしません)
ご回答ありがとうございます
ご指摘の通り、大半はマクロの記録でできるものだと思うのですが、CSVデータの指定した部分だけを取り出すという部分が、マクロの記録で出来ないので質問させて頂きました
それも出来るよというのであれば、当方の勉強不足です
申し訳ありません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
エクセルで、行ごとの並び替え...
-
excel ある部分だけをコピペし...
-
Excel(VBA)データ入力に応じて...
-
Excelでセル内の数式は残し値だ...
-
シートを任意の日付で自動で作...
-
日報をエクセルで作成したいの...
-
エクセルで複数設定したハイパーリンク先...
-
別シート参照のセルをシート毎...
-
Excelで金銭出納帳。繰越残高を...
-
EXCELで1ヶ月分の連続した日付...
-
複数シートの色付きセルがある...
-
シートの保護のあとセルの列、...
-
【マクロ】毎回、ファイル名が...
-
EXCELで同一フォーマットのシー...
-
Excelのシートを、まとめて表示...
-
エクセルでファイルを開いたと...
-
至急お願いします。エクセルシ...
-
エクセルで前のシートを連続参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
excel ある部分だけをコピペし...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
エクセルで連番をマクロで
-
Excelでセル内の数式は残し値だ...
-
Excel にて非表示行を探すワー...
-
値貼り付けをしても書式も貼り...
-
Excel2007 セルを右方向に削除...
-
整数行を残し小数点の行を削除...
-
エクセルで特定の数字となる組...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
「マクロ」の足し算の式を教え...
-
エクセルで同じ行中にある先頭...
-
Excelで連続印刷をするマクロ
-
エクセルである印をつけた特定...
-
100行のセルの高さを一括で調整...
-
エクセルで全ての数字間にカン...
おすすめ情報