今回は、2重入力の防止という観点から表題の「他のブックにデータを転記する」というマクロを作ってみたいと思います。
2重入力の問題というのはどんな会社でも多々あるだろうと思いますが、本来的にはデータの一元管理というのが出来るのが理想であるわけです。
が、現実的には、既に運用をしている数々のExcelシートを、今さら統一させるということは中々難しく、2重入力どころか、3重だったり4重だったりする場合もあろうかと思います。
そこで今回は、入力したデータを1回の入力で済ませる為の他のブックに自動転記をするといったマクロを作っていきます。(ただし、今回は「他のブックへ」という所だけに絞って話を進めていきます。)
0)
では、今回はまずその前準備として転記先のブックを予め作成する
ところから始めます。
────────────────────────────+
1.エクセルを起動させます。(空のエクセルを立ち上げてください)
2.まずは、シート[Sheet2]を開いてください。
3.次に、B1のセルに「 ↓転記場所 」との文字を入力してください。
4.次に、一旦いま開いている[Sheet2]のA1のセルを選択して
から、[Sheet1]の方を開き直してください。
5.そうしたら、このブックに名前を付けて保存をしてこのファイル
を閉じます。
※保存する名前は「data167.xls」とし、保存先のフォルダは
何処でも構いませんが、なるべくデフォルトのままで保存して
ください。(以降はそれにて解説していきます。)
────────────────────────────+
1)
それでは、いつものようにマクロの記録を使ってその基となる
プログラムを作っていきます。
────────────────────────────+
1.エクセルを起動させます。(再び空のエクセルを立ち上げてください)
2.ここでマクロの記録を開始します。
[ツール(T)] → [マクロ(M)] → [●新しいマクロの記録(R)...]
→ マクロの記録画面が出るのでそのまま[OK]をクリック。
3.まず、いま選択中のセルに(セル移動せずに)、111 と打って
ください。
4.打ち終わったら一度[Enter]キーを押して(入力モードを解除して)、
次に、先ほど作成しておいたデータのブックを以下の操作にて
開きます。
[ファイル(F)] → [開く(O)...] →「ファイルを開く」画面で、
先ほど保存したブック「data167.xls」を開く。
(※ここではWindowsのフォルダからファイル名をダブルクリック
する方法で開くというのはしないでください。)
5.次に、シート[Sheet2]を開きます。
6.B2のセルを選択し、222 と打ってください。
7.打ち終わったら一度[Enter]キーを押して入力モードを解除して、
[ツール(T)] → [マクロ(M)] → [■記録終了(R)]とやって、
マクロの記録を終了させます。
8.最後に、いま開いたブック「data167.xls」を閉じます。
[ファイル(F)] → [閉じる(C)] →「保存しますか?」→「いいえ」
────────────────────────────+
2)
では、いま作ったプログラムの中身をのぞいてみます。
────────────────────────────+
1.まず、いつもの様にプログラム用の画面を表示させます。
[ツール(T)] → [マクロ(M)] → [Visual Basic Editor(V)]
2.この画面の左上半分の[+標準モジュール]という所の+の部分を
クリックすると、そのすぐ下に[Module1]と表示されるので、その
[Module1]をダブルクリックします。
────────────────────────────+
++++++++++++++++++++++++++++─
Sub Macro1()
'
ActiveCell.FormulaR1C1 = "111"
Range("A2").Select
Workbooks.Open Filename:= _
"C:\Documents and Settings\My Computer\My Documents\data167.xls"
Sheets("Sheet2").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "222"
Range("B3").Select
End Sub
++++++++++++++++++++++++++++─
※上記プログラムの4行目「 "C:\Documents and Settings ・・・」の部分は、個々のPC環境やファイル保存先によって異なります。
ここのファイル名は通常、フルパス名で指定します。ファイル名が確かに合っているのに「ファイル名が見つかりません。」とのエラーが出る場合がよくありますが、それはフォルダ指定の問題になるわけです。
目的のブックがカレントの(現在の)フォルダにある場合には、ここは短く以下のようにパス名は外してファイル名だけを指定すればよいのですが、
"C:\Documents and Settings\My Computer\My Documents\data167.xls"
↓
"data167.xls"
カレントフォルダというのは、ファイルの保存場所を変えたりするとその都度変わっていく(移動する)ものですので、固定の場所ではありません。
なので、マクロを実行した時に何処がカレントフォルダなのかは基本予測不能なものなので、フルパス名にて指定する必要があります。(マクロの記録を使って作ればどんなに長いフルパス名でも間違うことはありませんので、大変に便利ですね。)
今、選択中のセルからデータを取得して、その転記先( ブック → シート → セル )を指定し、書き込む先に目印( 222 )をつけた。
という状態の元プログラムを、いつものようにマクロの記録で自動作成したということになります。
「マクロの記録」を使えば、ここまでプログラムは1文字も書く必要がありませんので、初心者にはとってもやさしい方法ですね。あとは、これをちょっと手直しするだけです。
次回に続く ...
当講座で初の「本」が出ました! 手軽にサクッと作れるマクロが満載!