この記事でわかること↓
- csvファイルをエクセルに取り込むマクロ(ソースコード)
- csvファイルをエクセルに取り込むマクロ書き方の習得
- 必要最低限のコードの説明(内部リンク)
欲しいデータがcsvファイルにあるとき、データを取り込み利用したい場面って
実務でよくありまよね?
その時の流れとしては、、、、
- 欲しいデータのファイルを開く
- 欲しいデータをコピーする
- 加工するEXCELファイルに欲しいデータを貼り付ける
- 欲しいデータのファイルを閉じる
という流れでやっていると思います
1度だけの作業なら問題ありませんが、毎日その作業をするのであればマクロを組んで自動化したいと考えることはありませんか?
しかし、マクロの知識がないから組めなかったり、マクロの記録をやってもうまくいかないなどありますよね
じゃあ、マクロを覚えてみようかな~と思って調べると
基礎講座とかをみると凄まじい量があり、え?こんなに覚えることあるの?と面を食らったりします
マクロはVBAの書き方次第で様々なことができますが、全部覚えるのは時間もかかるし大変です
「マクロ機能作ってみたいけど、これ全部やらなくてはいけないの?」
「やりたいことを検索しても基礎が分からないからできない」
と感じている人も多いのではないでしょうか?多いですよね?
そうです。私です。
そんな方のために、この一連の作業(開く→コピペ→閉じる)のマクロを作成する上で必要なことだけ、わかりやすく記事を書いていきます
またcsvファイルだけでなく、他のEXCELファイルでも使えます
私もマクロを学んで、できる幅が広がりましたが実際によく使うのは、このマクロだったりします
この記事を読んでる方は、データさえ入れれば関数やピポットでどうにかするって方が多いと思いますのでこのマクロを習得して実務役立ててくれたらうれしいです
項目は全部で三項目にまとめました
必要最低限のことだけ記事にしましたので参考にしてください
ソースコードだけとりあえず欲しい方は一番下にあるので、目次に飛んでください
ちなみにこのマクロを組んで、実行かけてうまくいったときに「気持ちいい!」と思ったら
適正があるのでマクロを基礎から学習するのをおすすめします
book(ファイル)を開く
コピーする(コピーだけのマクロを使いたいひとにもおすすめ)
book(ファイル)を閉じる
ソースコード(開く→コピペ→閉じる)
このソースコードは同じフォルダーにマクロのbook(ファイル)と欲しいデータのcsvファイルが入っているのが前提条件になりますので、注意してください
またoendriveと同期をしていても作動しません
フォルダーをCドライブに入れるか、同期を切ると作動します
15行名の「開きたいファイル名.拡張子」変更してください
Sub VBA()
'ファイルを開く//////////////////////////////////////
Dim wb_このマクロbook '「Dim」はDimに続く、文字を変数にするって意味、「wb_このマクロbook」という変数を作成、まだ中身はありません
Set wb_このマクロbook = ThisWorkbook '「wb_このマクロbook」名の変数に、このマクロbookを入れます
Dim ws_ペーストするシート '「Dim」はDimに続く、文字を変数にするって意味、「ws_ペーストするシート」という変数を作成、まだ中身はありません
Set ws_ペーストするシート = wb_このマクロbook.Sheets("ペーストするシート") '「ws_ペーストするシート」名の変数に、このマクロbookの「ペーストするシート」名のシートを入れる
Dim wb_欲しいデータファイル '「Dim」はDimに続く、文字を変数にするって意味、「wb_欲しいデータファイル」という変数を作成、まだ中身はありません
Set wb_欲しいデータファイル = Workbooks.Open(wb_このマクロbook.Path & "¥" & "開きたいファイル名.拡張子") '★ここでファイルを開いている。開いたファイルを「wb_欲しいデータファイル」名の変数に、欲しいデータファイルを入れる
Dim ws_欲しいデータのシート '「Dim」はDimに続く、文字を変数にするって意味、「ws_欲しいデータのシート」という変数を作成、まだ中身はありません
Set ws_欲しいデータのシート = wb_欲しいデータファイル.Sheets(1) '「ws_欲しいデータのシート」に欲しいデータファイルのSheet1を入れる
'コピペ///////////////////////////////////////////////
ws_欲しいデータのシート.Range("A1").CurrentRegion.Copy 'CurrentRegionはショートカットキー「Ctrl+A」と同じ意味、ここで全体をコピーしている
ws_ペーストするシート.Range("A1").PasteSpecial Paste:=xlPasteValues 'ペーストするシートのA1に値貼付けします「PasteSpecial Paste:=xlPasteValues」が値貼付けという意味
'欲しいデータファイルを閉じる///////////////////////////
Application.DisplayAlerts = False '普通にファイルを閉じると「保存しますか?」とでるが、このコードを入れるとでなくなる
wb_欲しいデータファイル.Close '★ここでファイルを閉じている
Application.DisplayAlerts = True '「保存しますか?」と問いかけを再設定する
End Sub
コメント