Excel VBA:選択した範囲やアクティブセル領域のセルのデータだけをCSV形式でエクスポートするサンプルプログラム

Excel

マウスで選択した範囲や、アクティブセル領域(Ctrl + テンキーの"*"をクリックして選択される範囲、VBAで言うと"CurrentRegion")のセルのデータだけをCSV形式のファイルにエクスポートするプログラムを作成したので覚書しておく。

プログラム実行時には、[名前を付けて保存]ダイアログボックスを表示してCSVファイルの保存先を任意に決められるようにしてある。

マクロの実行から指定して実行するのは少し面倒なので、今回はコマンドバー(CommandBar)をVBAで作成させ、作成した2つのボタンにそれぞれのプログラムを割りつけるようにした。

以下にCSV形式でエクスポートするプログラムとコマンドバーを作成するプログラムを記述。

CSV形式に保存するサンプルプログラム

まず最初にCSV形式に保存するためのプログラムを記述。

各データは、引用符として(")ダブルクォーテーションで括るようになっているが、後述するコードに変更すれば引用符を使わないようにもできる。

データを引用符(“)ダブルクォーテーションでくくらない場合は、40行目と48行目のコードを変更する。

変更前

変更後

作成したプログラムをコマンドバーに割り当てるサンプルプログラム

次にこのプログラムをコマンドバーに作ったボタンから実行できるように新たにコマンドバーを作成するプログラムを記述。

VBAでコマンドバー(CommandBar)を操作する方法に関する詳細は以下のサイトを参照。

いちいちこのファイルを呼び出さなくてよいので頻繁に利用するのであればアドイン化する。

コメント

  1. にじ より:

    初めまして。
    前の記事に書込みしてしまい申し訳ございません。
    エクセルで選択範囲のみ保存するマクロが分からず、こちらへたどり着きました。
    他のサイトでは見つからなかったので、大変為になりました。
    保存したいのがWebページ(htm,html)形式の場合は、
    どのように書いたらよろしいでしょうか…?
    分かるところだけ書き換えてみたのですが、エラーで実行できずに;
    お忙しいところすみませんが、どうぞよろしくお願いいたします。
    お時間ございますときに教えていただけますと幸いです。