【簡単エクセルマクロ・VBA】他のファイルのにデータを書き込む|ファイル操作 #006
いつもありがとうございます。
これは、ノンプログラマー向けのエクセルマクロ・VBA解説シリーズです。
本稿では、他のファイルにデータを書き込む方法を解説いたします。マクロを記録しているファイルとは別のファイル(書き込み先のファイル)にデータを書き込む方法です。
ことばの意味
- ノンプログラマー
プログラミングを本職としない人たちのことです。 - マクロ
VBAを使って作成される「機能」のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。
筆者の記事関連経験/資格
- VBA使用経験 約20年
- Python 3 エンジニア認定基礎試験 合格
一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。
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 ループなどを組み合わせると、多数のファイルに一気にデータを書き込んでいくことも可能です。
これはアプリケーション作成テニック解説シリーズで解説していきます。
おわりに
ご覧いただきありがとうございました。
本稿では、「ファイル操作」の中の「他のファイルにらデータを書き込む方法」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。
>>Amazon で VBA の書籍をでチェックする>>楽天市場 で VBA の書籍をチェックする
>>Yahoo!ショッピングでVBAの書籍をチェックする
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。