スポンサーリンク

【Excel/VBA】やってみよう!VBA⑥ファイルの操作

やってみよう!VBA! やってみよう!VBA
btr
スポンサーリンク
※当サイトは広告を含みます

勝手に初心者講座。パートのおばさんにもできたんだからあなたにもできる!やってみよう!VBA!

 今回はファイルの操作をやってみようと思います。

ファイル1に、別のファイル(ファイル2)からデータをコピーして入力し、ファイル1を別ファイルとして保存する。

手順を分解すると流れは以下のようになります。

ファイル1は開いておく

①ファイル2を開く

②ファイル2からデータをコピーして点数ファイルに入力する

③ファイル2を閉じる

④ファイル1を別名で保存する

原本ファイル(ここではファイル1)にどこかから持ってきたデータを入力し、原本ファイルはそのままで別ファイルとして保存する、という形です。

ファイル1はこれまで使っていた点数ファイルを使いましょう。

1-3回目シートの表内をクリアしておきます。

データを持ってくるファイル(ファイル2)を用意します。

点数ファイルと同じフォルダに「data」という名前でファイルを作成し、A1~D5まで以下の内容を入力してください。(入力する点数は何でもいいです)

 ■ファイルを開く

 コードを書いていきましょう。

「ファイル操作」プロシージャを作成します。

以下のように入力してください。

 ①のファイルを開く部分です。

「ファイルを開く」コードは WorkBooks.Open の後に開くファイルを指定します。

■ファイルを開く構文

WorkBooks の「s」を忘れずに!開くファイルは一つだから単数形でいいような気がしますが、たくさんあるファイルコレクションの中からこの名前のファイルを開きます!ということで WorkBooks 複数形が正解です。

■ファイル名は拡張子まで指定

ファイル名には拡張子まで指定します。ファイル名.拡張子とピリオドでつなげて書きます。Excelファイルは「.xlsx」。マクロ付エクセルファイルは「.xlsm」です。dataファイルはマクロ有効ブックではないただのエクセルなので「.xlsx」になります。

拡張子が分からん・・・という場合は、ファイルを右クリックしてプロパティを表示すると拡張子が分かります。

■開くファイルを指定するときはフルパスを指定する方がベター

上記コードではファイル名だけを指定しています。対象ファイルが同じフォルダになる倍はフォルダ名を省略できますが、わかりやすさや誤操作の観点からフルパスを指定する方がベターです。

フルパスとはその対象ファイルに至るまでの一番親分のフォルダから〇〇フォルダの△△フォルダの中の◆◆ファイル、とその対象ファイルに至るまでのフォルダ名をすべてつなげたものです。

フルパス指定で上記コードを書きなおすと

f:id:mwke:20201108111506p:plain
こんな感じになります。

フォルダ名が面倒なので、変数に入れちゃいましょう。

パスを入れる変数はpathとしましょう。型は文字列型(String)を指定します。

path = “C:¥Users¥Documents¥vba¥”

でもよいのですが、マクロ実行ファイルと同じフォルダなので

ThisWorkBook.Path

「このワークブックのパス」と指定すると「 C:\Users\Documents\vba」が取得できます。

パスを入れる変数か、ファイル名の先頭かいずれかにフォルダ名とファイル名の間の「¥」を忘れずに入れましょう。

■マクロのステップ実行

マクロを動かしてみましょう。ここで、変数pathに何が入っているか確認したいので、マクロをステップ実行します。

VBAエディタ画面で実行したいプロシージャ内にカーソルを置き「デバッグ」→「ステップイン」をクリックします。

Sub ファイル操作()の部分が黄色くなりました。黄色の部分が実行する行です。

「F8」キーで次の実行行に移ります。「F8」を2回押してWorkBooks.Openの行が黄色くなった状態にしてください。

pathのところにポインタをあてると変数になにが入っているかが表示されます。

 ■イミディエイトウインドウで変数の中身を見る

イミディエイトウインドウで変数の中身を確認することもできます。

表示→イミディエイトウインドウ をクリックするとエディター画面の下にイミディエイトウインドウが表示されます。

上記のステップ実行WorkBooks.Openの行が黄色くなっている状態で、イミディエイトウインドウ内で 「?」変数名 と入力し、エンターを押すと変数に何が入っているかが下の行に表示されます。

その他にもイミディエイトウインドウはいろいろな使い方があります。

詳しくはこちらのリンク先などにわかりやすく書いてあります。

イミディエイトウインドウの使い方

VBEの使い方:イミディエイト ウィンドウ|VBA入門

■ステップ実行を止める

まだdataファイルは開きたくないので、マクロのステップ実行を止めたいと思います。

ステップ実行を止めるにはリセットボタンをクリックします。

ところでデバッグとは「Bug:虫」を取り除くためのもの。プログラムの中の欠陥を取り除いていく作業のことを言います。一気にがーっと実行ではなく、ステップ実行しながらどこか間違ってるところはないかな~とテストしながらやっていくのが常です。

デバッグとは、はこちらを参考にしています。

デバッグとは – IT用語辞典 e-Words

今日はこの辺で終わりにします。

次回はファイルを開いてからの動作をやっていく予定です。

★今日のおさらい★

こんなことをやりました

・ほかのファイルを開く

・ファイルの拡張子のこと

・パス名のこと

・ステップ実行のやり方

・変数の中身の確認の仕方

・イミディエイトウインドウのこと

・ステップ実行の止め方

やってみよう!VBA!シリーズ

【Excel/VBA】やってみよう!VBA①

【Excel/VBA】やってみよう!VBA!②

【Excel/VBA】やってみよう!VBA!③

【Excel/VBA】やってみよう!VBA!④

【Excel/VBA】やってみよう!VBA⑤ワークシートの操作

【Excel/VBA】やってみよう!VBA!⑦ファイルの操作その2

【Excel/VBA】やってみよう!VBA⑧最後に

コメント

タイトルとURLをコピーしました