ExcelVBA【実践】マクロ(VBA)でCSVファイルを自動読込!業務効率化に役立つ技【解説】

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ธ.ค. 2024

ความคิดเห็น • 32

  • @chanryo_eff
    @chanryo_eff  3 ปีที่แล้ว +2

    こちらで配布しています!
    it-yobi.com/excel-p-no21/?link=4
    CSVをより高速で読み込む方法 ⇒ th-cam.com/video/xHmiB_XnIyM/w-d-xo.html
    ●---Excel【基礎】---●
    Excelを始めるにあたり、必要な知識をまとめています!
    詳しくは再生リストにて!
    th-cam.com/play/PLuUrleRMhKDc1thXw-EmZAU34vhLrKnm3.html
    ●---Excel【実践】---●
    実際に開発しながら解説しています!
    詳しくは再生リストにて!
    th-cam.com/play/PLuUrleRMhKDf4BrAPNt5lfJ7bGCcgCQUw.html
    ●---Excelその他---●
    他にもデータベースなど再生リストを用意!
    th-cam.com/channels/y5cpoeTKqZ2cDzWX8NB3Gg.htmlplaylists
    ●---Googleスプレッドシート【基礎】---●
    Googleスプレッドシートを始めるにあたり、必要な知識をまとめています!
    詳しくは再生リストにて!
    th-cam.com/play/PLuUrleRMhKDe5kCiV88fRUuxsMvZ5asJC.html
    00:00​ 挨拶
    00:19​ 完成イメージ
    00:48​ 作成(必要なデータの確認)
    01:23​ 作成(CSV読込関数)
    10:03​ 完成
    10:22​ まとめ
    10:46​ プログラムの全体

  • @Sena-fz9zg
    @Sena-fz9zg ปีที่แล้ว

    数字にはカンマが含まれており、間隔部分には不規則な空白が含まれているような場合は、どのように対応すればいいのか悩んでいます

    • @chanryo_eff
      @chanryo_eff  ปีที่แล้ว

      不規則な空白とは、Tabのことでしょうか??
      Tab区切りなどの別の区切り文字の場合は、こちらの記事(Splitについて)が参考になるかもです!
      it-yobi.com/excel-p-no123/?link=4

  • @villagecedar
    @villagecedar 2 ปีที่แล้ว +1

    非常にわかりやすいです。
    このPathのところですが毎回csvの名称が違う場合は
    都度帰る感じですか?

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว +1

      ありがとうございます!
      別のシートのセル上に入力する欄を設けるとか、InputBoxで入力させる、ダイアログにて選択させる、とかにするとプログラム内を直接触らなくて良くなるのでいいかもですね!

  • @GTAIVmania09
    @GTAIVmania09 2 ปีที่แล้ว +1

    Selenium BasicによるChrome操作の質問です。
     入札説明書.pdf
    上記のようなタグの内容で、driver.FindElementByTag("a").Clickのようにすると、Chrome設定のフォルダーにダウンロートできると思いますが、例えば、上のような場合だと、ファイル名「入札説明書.pdf」でダウンロードされますが、これを任意の名前でダウンロードできるようにしたいのですが、今一つやり方がわかりません。
    ちなみに、URLDownloadToFileはこの場合だと多分使えないですよね?ダウンロード後の変名だとちょっと都合が悪いので、こちらでいいのか悩みましたが質問してみることにしました。
    もしよろしければ、お願いいたします。

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว

      VBAのSeleniumで試したことがないのでなんとも言えませんが、最悪、ダウンロードした後にファイル名を変更するという方法も実現できるかもですね😂

  • @hanajp2130
    @hanajp2130 3 ปีที่แล้ว +1

    コードを応用して、特定の行だけ読み込むなんてこともできるのでしょうか?

    • @chanryo_eff
      @chanryo_eff  3 ปีที่แล้ว

      For Eachで一行一行を表示させています。
      行数は変数Colに入っています。
      なので、IF文を活用して、特定の行数(Colの値)の場合のみ、表示するという感じに修正すれば実現可能です😄

  • @陳堅春
    @陳堅春 2 ปีที่แล้ว +2

    すごく勉強になりました。セル内改行ありCSVを読み込むとデータが混乱、文字化けを解決する方法を教えてほしいです。

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว

      ありがとうございます!
      CSVファイルの文字コードによるので、解決方法は一概には言えないですね💦
      文字化けに関しても文字コードによる問題かと思います。
      CSVファイルをメモ帳などで開くと右下に文字コードが表示されるかと思います。(UTF-8やANSI(メモ帳ではShift-jisを意味する)など)
      Windows上でCSVファイルを開く際のExcelの標準はShift-jisです!

  • @ジン-i3i
    @ジン-i3i 2 ปีที่แล้ว

    データ全てを読み込むと時間がかかるのです。条件を満たした行(データ)のみを読み込むにはどうすればいいのでしょうか?

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว +1

      こちらは配列を使用していないため、処理時間がかかってしまいます。
      配列を活用したものは以下になります。
      th-cam.com/video/xHmiB_XnIyM/w-d-xo.html
      条件を満たした行のみを読み込む場合は、行ごとで読み込んでいる繰り返し処理の中で、IF文を用いて「条件を満たさなければスキップする」などを記述することで対応できるかと思います!

  • @kazh4158
    @kazh4158 2 ปีที่แล้ว

    動画ありがとうございます。
    動画を参考にCSVファイルを読み込んところ、エクセルデータが【””】(ダブルクォーテーション)で囲まれてしまってます。。。
    ダブルクォーテーションを削除しつつCSVデータを取り込む場合はどうすればいいでしょうか?

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว

      コメントありがとうございます!
      書き出す処理の際に「"」を削除する処理を加える必要があります!
      現在、カスタマイズへの具体的な解答はBプランのメンバーのみに対応しております🙇‍♂️
      ※詳しくは概要欄にて

  • @ioxor266
    @ioxor266 2 ปีที่แล้ว

    勉強になります。ありがとうございます。
    テキストのタブ区切りの読み込み方が知りたいです。只今勉強なかです!

    • @chanryo_eff
      @chanryo_eff  2 ปีที่แล้ว +1

      コメントありがとうございます!
      別の区切り文字の対策は以下にまとめてあります😊
      it-yobi.com/excel-p-no123/?link=4

  • @yu5fromNY
    @yu5fromNY 3 ปีที่แล้ว +1

    初めまして。最近業務でVBAを触りだした素人です。
    このVBAの場合、取り込んだCSVに空白のセルがあった場合にはそこで読み込みは止まってしまいますか?

    • @chanryo_eff
      @chanryo_eff  3 ปีที่แล้ว

      正しいcsvファイルで、かつ文字コードが問題なければ、止まることはありません!
      試してみるといいと思います😊

    • @yu5fromNY
      @yu5fromNY 3 ปีที่แล้ว +1

      @@chanryo_eff
      お返事頂きありがとうございますm(_ _)m
      試してみます!!

  • @shu695
    @shu695 3 ปีที่แล้ว +1

    質問失礼します。
    改行コードの処理はどのような作り込み方をすればよろしいでしょうか?
    私の環境ではLinuxから取得したcsvファイルが元になっている為改行コードをLF(¥n)→CR+LF(¥r¥n)に変換する必要があります。
    この動画で作成されたプログラム内のどの箇所(何行目)に何を追加すれば良いか教えていただけないでしょうか?

    • @chanryo_eff
      @chanryo_eff  3 ปีที่แล้ว

      LFの場合は、複数行のcsvファイルであったとしても1行で取得されてしまうので、何行目を修正すればよいという感じに一部の修正ではうまくいかないです😥
      ヒントとしましては、
      Line Input #1, buf
      の次の行に、
      bufAll = Split(buf, vbLf)
      と記述し、bufAllに配列として受け取ります。
      その後、
      For Each bufText In bufAll
      のように1行1行を繰り返していくイメージです。
      1行1行の処理に関しては、
      CRLFの時と同様の処理になります!

    • @shu695
      @shu695 3 ปีที่แล้ว +1

      @@chanryo_eff
      ヒント頂きありがとうございます!
      回答頂いたものを頼りにさっそく作成してみます。

    • @chanryo_eff
      @chanryo_eff  3 ปีที่แล้ว +1

      また何かあればご連絡ください!😊

  • @RS-kx9rp
    @RS-kx9rp 3 ปีที่แล้ว

    詳しく説明してるから分かりやすいです。

  • @yeongmi07
    @yeongmi07 3 ปีที่แล้ว

    動画ありがとうございます。一瞬で取り込めるのを見たらスカっとしました!
    いくつか試したところ、出来るファイルとエラーになるファイルがありまして、何が違うのかと探したら改行コードがLFでした。(ここで初めて改行コードを知った初心者です)
    奥が深すぎて泣けてきますが少しずつ学習しようと思います。。。

    • @yeongmi07
      @yeongmi07 3 ปีที่แล้ว +1

      @@chanryo_eff
      ヒントをありがとうございます!調べてトライしてみます!!

    • @yeongmi07
      @yeongmi07 3 ปีที่แล้ว

      @@chanryo_eff
      改行コードの変換、教えていただいたReplaceで置換する方法で探してみたところ
      www.tipsfound.com/vba/04001
      vbabeginner.net/convert-lf-to-crlf/
      上記サイトなどがありましたが、散々こねくり回した結果まだ出来ません。
      まず基本を学ばないといけないのですが、何から始めて良いのやら悩みます(T-T)

    • @yeongmi07
      @yeongmi07 3 ปีที่แล้ว

      @@chanryo_eff ありがとうございます!昨日入会させていただいたので、そちらにて書き込みいたします!

  • @まさひろ-q2v
    @まさひろ-q2v 3 ปีที่แล้ว

    初心者(入門レベル)です。いつもお世話になっております。
    Do~Loop文とFor Each~Next文で読み込みできることが理解できました。
    例えば、項目のなかに商品コード「0001」とか電話番号「03-xxxx-xxxx」や「090-xxxx-xxxx」の頭の「0」が消えないように読み込ませる方法がわからないので教えていただけると助かります。よろしくお願いいたします。