VBA【スポンサーリンク】Excelのマクロ、「VBA」で、特定範囲のデータをCSV出力するマクロを作りました。いうことで、VBAに手を出してみました!正確にはあまり手を出していなかっただけで、やったことはあるんですが。VBA、やはり便利ですね。実際は作ったというより、他サイト様のマクロを改造しただけなのですが......コチラのコードを流用しました。出力したいセルを範囲選択マクロを割り当てたボタンを押す決められたパスに、CSVとテキストを出力という感じでした。80%">引用:http://www.excel-excel.com/tips/vba_198.html</span>それを今回自分用に、このようにカスタムしました。要所要所で解説をします。今回「searchBlank」という関数を作成しました。この関数は、引数であるセルの行列番号を指定します。そのセルから下に検索していき、「空のセルを発見するまで」動きます。完了すると、空のセルがあった「行番号」を返します。今回「CommandButton1_Click」という名前を「CsvOutput4DataDefineTable」に変えました。なんとなく意味に沿った感じに変更です(笑)初めのこの箇所で、パスの作成をしています。13列目」を指定しています。そのセルで取得した名前を「C:\Output\」というフォルダにくっつけて、出力パスを作成しています。fnameこの箇所で、参照するセル範囲を設定しています。startColが、見始める行列番号。endColが、終端の行列番号です。endRow以外固定にして、こいつは作成した関数で値を取得しています。searchBlank関数は、空セルの行番号を返すので「-1」して、最終セルに番号を合せています。23次にrng変数です。以前はこの変数に、選択セル範囲のアドレスを入れていました。こちらに今回指定した範囲のアドレスを作って入れてあげます。データが10行目までだった場合、「$L$5:$W$10」みたいな感じになります。endCol).Addressあとはもともとの機能を使って、勝手に出力してもらうだけです。FileFormat:=xlCurrentPlatformTextは削除しています。あとがき久しぶりにVBAに手を出しましたが、これはこれで楽でいいですね。数式よりもプログラムよりで、大きな作業が一気にできます。lisz-worksスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。