![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは 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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) 【VBA】もし、値が0だったら左のセルと合わせて削除したい 3 2023/04/20 10:12
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
excel ある部分だけをコピペし...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
エクセルで特定の数字となる組...
-
エクセルで全ての数字間にカン...
-
並べ替えのマクロで対象行の範...
-
Excel2007:半角数字を全角で表...
-
wordのvbaでハイパーリンク設定...
-
Excel 2013 文字列内の文字重複...
-
VBA シングルクォーテーション...
-
マクロまたは他の方法でで自動転記
-
Excel2007 セルを右方向に削除...
-
エクセルVBAマクロで条件付き合...
-
Excelで周期的に列を削除する方法
-
エクセル VBA 小数点を含む数字...
-
前の(左隣の)シートを連続参...
-
Excelで同じシートのコピーを一...
-
Excelで金銭出納帳。繰越残高を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
値貼り付けをしても書式も貼り...
-
エクセルで、行ごとの並び替え...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
-
VBA コピーを有効行までループ...
-
並べ替えのマクロで対象行の範...
-
Excelで周期的に列を削除する方法
-
100行のセルの高さを一括で調整...
-
yyyy/mm/ddの日付に一括変換す...
-
エクセルで連番をマクロで
-
エクセル2003でマクロをおこな...
おすすめ情報