【Excel VBA】別フォルダにある表をコピーしてみる

シェアする

マクロを使って指定したフォルダの表をコピーしてみたくなったので、

マクロを使って指定したフォルダの表をコピーしてみました。


VBAでやりたいこと

・指定したフォルダの指定したシートを開く

・指定した表全体をコピーする

・コピーした表を指定した別フォルダのシートに張り付ける

状況設定

場所 C:\work\vba

inフォルダ:読み取りたいエクセルファイル(data1.xlsx)があるフォルダ

outフォルダ:書き込みたいエクセルファイル(out.xlsx)があるフォルダ

test.xlsm:マクロを作るエクセルファイル

読み込みたい表(data1.xlsx)

事前準備

マクロファイルを作成

エクセルファイルを新規作成し、こんな感じのものを用意。

・適当な図形

・F4の位置に入力フォルダのパス

・F7の位置に出力フォルダのパス

拡張子xlsmで、名前を付けて保存します。(test.xlsm)

VBAの起動、有効化

Alt + F11 でVBA編集画面が開きます。

挿入→標準モジュールを選択すると、コード記入画面が表示されます。

今回はtestと名付けたマクロを作成しました。

中身からっぽでいいので、画像のように関数の宣言だけして保存。sheet1に戻ります。

次に、
先ほど作成した図形を右クリック
→『マクロを登録』を選択
→マクロ名で先ほど作成した『test』を選択
→OKを押す

これでマクロが有効化されました。

今はまだ何も起きませんが、図形をクリックすると関数『test』が実行されます。

実装

本題のコーディングです。

今回はこのようなコードを作りました。

大まかな流れはコメントに書いた通りです。

少しややこしいのが入力から出力への処理ですが、これはCopyメソッドで簡略化しています。

また、表全体の選択にはCurrentRegionプロパティを合わせて使用しています。

今回実装したtest関数を実行すると、指定した出力フォルダ内にあるout.xlsxに、入力ファイルと同じ表が貼り付けられているはずです。

おわり

vbaを使った異なるファイルでのコピペについて、簡単に動かしてみました。

実際にやりたい操作はもう少し複雑なため、改良を加えていきたいと思います。

まつよう
次の記事では複数ファイルからの読み込みを行います。

スポンサーリンク

シェアする

スポンサーリンク