忍者ブログ
ブログ主が仕事や個人的に学んだPC系・プログラミング系(VBAとかHTML)について書いていく備忘録ブログ。 ※ここで記載する内容はあくまで「個人的に」上手くいく内容です。ご使用には十分注意してください
[25] [24] [23] [21] [19] [18] [17] [16] [15] [14] [13
Posted by - 2024.04.26,Fri
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by 若槻風亜 - 2014.06.06,Fri
(対象)Excel VBA
(確認)Excel2003(多分2010でも使える)

今回はCSVの読み込み及び書き込みについてを書いていこうと思います。
データがCSVになっている、データをCSVに出力したいということは
意外に多いです。

それこそ色々やり方がありそうなものですが、
とりあえずここでは標準的なものを挙げてみます。


----------------------------------
(前提)
 1.DontLookやOKLookなどを使用→詳しくはこちら

(プログラム 読み込み)
  '==========================================================
  ' 読み込んだCSVをシートに展開
  '==========================================================
  Sub ReadCSV()
    Dim FileNo   As Integer
    Dim MyStr    As String
    Dim StrBox()  As String
    Dim WH1     As Worksheet
    Dim I As Long, J As Integer, K As Integer
    DontLook
    '■読込先を初期化
    Set WH1 = Worksheets("作業用")
    WH1.Cells.Delete
    '■読み込み→写し
    FileNo = FreeFile  ’(※1←↓)
    Open ThisWorkbook.Path & "\テスト用データ.csv" For Input As #FileNo
    MyStr = "": I = 1
    Do Until EOF(FileNo) '(※2)
      '△一行分読み込み
      Line Input #FileNo, MyStr  '(※3)
      '△区切り文字(この場合は「,」)を探す(※4)
      StrBox = Split(MyStr, ",")
      For J = 0 to Ubound(StrBox)
        WH1.Cells(I, J + 1).Value = StrBox(J)
      Next
      I = I + 1
    Loop
    '■閉じる
    Close #FileNo
    OKLook
  End Sub

(解説)
 ※1
  =指定したCSVを開く
  ★「変数 = FreeFile」
    = 変数に空いているファイル番号(FreeFile)を格納
  ★「Open ファイル名 For 処理モード As #ファイル番号」
    =指定したファイルを指定したファイル番号で、指定した
     処理モードで開く
     ※処理モード
      ・・・Input : 入力モード(読み込み)
      ・・・Output : 出力モード(書き込み)
      ・・・Append : 追加モード(書き込み)
      ・・・Random : ランダムアクセスモード(読み込み/書き込み)
      ・・・Binary : バイナリモード(読み込み/書き込み)

 ※2
  =「Do Until EOF(ファイル番号)」
    指定したファイルを読み終わるまで
 ※3
  =「Line Input #ファイル番号, 変数」
    ファイルの内容を1行読み込み、その内容を変数に格納する

 ※4
  =区切り文字で値を区切り、配列変数に格納
   →データをシート上に展開

----------------------------------
(プログラム 書き込み)
  '=========================================================
  ' CSVに出力する
  '=========================================================
  Sub OutPutCSV()
    Dim WH1     As Worksheet
    Dim I As Long, J As Long, K As Integer
    '■読込先を初期化
    Set WH1 = Worksheets("作業用")
    '■CSV作成
    WH1.Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\aaa", _
               FileFormat:=xlCSV
    ActiveWindow.Close False
    MsgBox "CSVファイルが作成されました" & vbCrLf, vbInformation, "終了報告"
  End Sub

(解説)
 ★CSVの作成
  1.CSVにしたいシートをコピー
  2.名前をつけて形式を選択して保存
    「ブック.SaveAs FileName:=パス\ファイル名, FileFormat:=xlCSV」
    ※FileFormatで指定出来るファイル : 参照URL(http://www.officepro.jp/excelvba/book_new/index9.html)

----------------------------------

以上がCSVの読み込みと書き込みについてです。
もっとスマートなやり方やそれぞれの細かい内容については
グーグル先生にお尋ねくださいませ。

では、今回はこの辺りで。


拍手[0回]

PR
Comments
Post a Comment
Name :
Title :
E-mail :
URL :
Comments :
Pass :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:
若槻風亜
性別:
女性
職業:
会社員
趣味:
創作、プログラミング
自己紹介:
仕事や個人で学んだことをまとめておきたかったがために備忘録ブログを立ち上げました。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
ブログ内検索
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
P R
最新トラックバック
コガネモチ
フリーエリア



Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]