【簡単エクセル/Excel VBA マクロ】他のファイルにデータを書き込む|ファイル操作 #006



いつもありがとうございます!
ノンプログラマー向け「Excelマクロ・VBA解説シリーズ」へようこそ。
本稿では、他のファイルにデータを書き込む方法を解説いたします。マクロを記録しているファイルとは別のファイル(書き込み先のファイル)にデータを書き込む方法です。
VBAにおけるファイル操作の全体像
VBAにおける「ファイル操作」の全体像は以下の記事で解説しております。
本稿では「ファイル操作」の一部である「他のファイルにデータを書き込む方法」を解説いたします。
VBAで他のファイルにデータを書き込む方法
下図のように、他のファイルにデータを書き込む.xlsm
からデータの書き込み先である destination.xlsx
を操作し、データを書き込むマクロを例に解説します。

コード全文とマクロ実行結果を以下に示します。
Sub Sample()
' 変数宣言
Dim dwb As Workbook ' Destination Worlbook ; データの書き込み先
Dim dwb_ws1 As Worksheet ' dwb の Worksheet1
' データの書き込み先のファイルを開くと同時に変数 dwb に格納する
Set dwb = Workbooks.Open(ThisWorkbook.Path & "\destination.xlsx")
' dwd の Worksheet1 を変数 dwb_ws1 に格納する
Set dwb_ws1 = dwb.Worksheets(1)
' データを書き込む
dwb_ws1.Cells(2, 2) = "みんなの実用学"
' データの書き込み先ファイルを"保存して"閉じる
dwb.Close SaveChanges:=True
End Sub

解説していきます。
' 変数宣言
Dim dwb As Workbook ' Destination Worlbook ; データの書き込み先
Dim dwb_ws1 As Worksheet ' dwb の Worksheet1
この冒頭の部分は変数の宣言です。Dim 変数 as データ型の構文で宣言します。
これによって各変数は As 以降で指定したデータ型のデータを格納することができるようになります。
尚、"Workbook"はワークブック、"Worksheet"はワークシートを意味しています。
' データの書き込み先のファイルを開くと同時に変数 dwb に格納する
Set dwb = Workbooks.Open(ThisWorkbook.Path & "\destination.xlsx")
データの書き込み先ファイル(destination.xlsx)を開き、同時に変数 dwb (destination workbook)に格納します。
' dwd の Worksheet1 を変数 dwb_ws1 に格納する
Set dwb_ws1 = dwb.Worksheets(1)
データの書き込み先ファイル dwb のワークシートを変数 dwb_ws1 に格納します。dwb.Worksheets(1)
のカッコの中の 1 は、1番目のシート、つまりファイル dwb 内の左端のシートを意味します。
' データを書き込む
dwb_ws1.Cells(2, 2) = "みんなの実用学"

ここがデータの書き込み先ファイル(destination.xlsx)にデータを書き込んでいるパートです。
Cells(2, 2)
に "みんなの実用学" という文字列を書き込んでいます。
この方法では、Cells(2, 2)
に"値のみ"を書き込んでいます。書式は情報などは貼り付けていません。
' データの書き込み先ファイルを"保存して"閉じる
dwb.Close SaveChanges:=True
ファイルを保存して閉じないとマクロ実行結果が保存されませんので、データの書き込み先ファイル dwb
を保存して閉じます。
ファイルを閉じる方法に関しては、こちらの記事でも解説しておりますので、もしよろしければご覧ください。
以上が、他のファイルにデータを書き込む方法です。
これに For...Next ループなどを組み合わせると、多数のファイルに一気にデータを書き込んでいくことも可能です。
これはアプリケーション作成テニック解説シリーズで解説していきます。

ご覧いただきありがとうございました!
関連記事
本稿と関連の深い記事です。もしよろしければ、合わせてご活用ください。
- 【簡単エクセル/Excel VBA マクロ】解説シリーズ目次 | みんなの実用学(jitsuyogaku.com)
- 【簡単エクセル/Excel VBA マクロ】Excel VBA マクロの全体像 | みんなの実用学 (jitsuyogaku.com)
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるよりは、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
甲乙つけがたい場合、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
\チェックしてみよう/
\チェックしてみよう/
\チェックしてみよう/
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。

おわりに

ご覧いただきありがとうございました!
本稿では、「ファイル操作」の中の「他のファイルにらデータを書き込む方法」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
なお、当サイトでは様々な情報を発信しております。もしよろしければ、トップページもご覧いただけると幸いでございます。
この記事を書いた人
- ■人生を追求する凡人■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢■光学・機械系エンジニア(歴20年、内マネジメント10年、特許数件権利化)/副業フリーランスエンジニア■読書・文学愛好■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を研究。■VBAアプリ開発サービス提供中(業務委託 / VBA使用経験20年)■Python愛好(歴5年)■VBAエキスパート「Excel VBA スタンダード」(上級者向け資格)/ Python 3 エンジニア認定基礎(経済産業省「ITスキル標準(ITSS)」に掲載)