誰も教えてくれない

Excelのマクロ(VBA)
一般社団法人 実践ワークシート協会

代表理事 田中 亨(Office	
  TANAKA)
今日のテーマ
1. VBAの学び方
2. マクロの作り方
まず初めに
マクロは
Excelが持つ機能
の名前
VBAは
プログラミング言語
の名前
マクロ記録は
操作を記録する
機能の名前
マクロ=記録すること
VBA=手入力すること
マクロ=記録すること
VBA=手入力すること
ではない!!
マクロ
Excelを自動実行する機能
VBA
マクロで使うプログラミング
言語
1. VBAの学び方
2. マクロの作り
方
VBAをマスターでき
ない
3つの理由
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
マクロ(VBA)の学習
マクロ(VBA)の習得には2つの学習が必要
マクロ(VBA)の学習
マクロ(VBA)の習得には2つの学習が必要
1. 素材についての学習	
  
2. 素材を組み合わせるトレーニング
食材
食材 調味料
食材 調味料 器具
食材 調味料 器具
食材 調味料 器具
食材 調味料 器具オブジェクト
食材 調味料 器具オブジェクト
If	
  Then	
  Else	
  
For	
  Next	
  
Do	
  Loop	
  
ReDim	
  Preserve
構文
食材 調味料 器具オブジェクト
If	
  Then	
  Else	
  
For	
  Next	
  
Do	
  Loop	
  
ReDim	
  Preserve
構文 VBE
食材 調味料 器具オブジェクト
If	
  Then	
  Else	
  
For	
  Next	
  
Do	
  Loop	
  
ReDim	
  Preserve
構文 VBE
Sub	
  Sample()	
  
	
  	
  	
  	
  Dim	
  buf	
  As	
  String,	
  tmp	
  As	
  Variant	
  
	
  	
  	
  	
  buf	
  =	
  Replace(Range(“A1”),”-­‐”,””)	
  
	
  	
  	
  	
  tmp	
  =	
  Split(buf,	
  vbCr)	
  
	
  	
  	
  	
  For	
  i	
  =	
  0	
  To	
  Ubound(tmp)	
  
	
  	
  	
  	
  	
  	
  	
  	
  Debug.Print	
  tmp(i)	
  
	
  	
  	
  	
  Next	
  i	
  
End	
  Sub
食材 調味料 器具オブジェクト
If	
  Then	
  Else	
  
For	
  Next	
  
Do	
  Loop	
  
ReDim	
  Preserve
構文 VBE
Sub	
  Sample()	
  
	
  	
  	
  	
  Dim	
  buf	
  As	
  String,	
  tmp	
  As	
  Variant	
  
	
  	
  	
  	
  buf	
  =	
  Replace(Range(“A1”),”-­‐”,””)	
  
	
  	
  	
  	
  tmp	
  =	
  Split(buf,	
  vbCr)	
  
	
  	
  	
  	
  For	
  i	
  =	
  0	
  To	
  Ubound(tmp)	
  
	
  	
  	
  	
  	
  	
  	
  	
  Debug.Print	
  tmp(i)	
  
	
  	
  	
  	
  Next	
  i	
  
End	
  Sub
VBAに関する知識・技術
食材 調味料 器具オブジェクト
If	
  Then	
  Else	
  
For	
  Next	
  
Do	
  Loop	
  
ReDim	
  Preserve
構文 VBE
Sub	
  Sample()	
  
	
  	
  	
  	
  Dim	
  buf	
  As	
  String,	
  tmp	
  As	
  Variant	
  
	
  	
  	
  	
  buf	
  =	
  Replace(Range(“A1”),”-­‐”,””)	
  
	
  	
  	
  	
  tmp	
  =	
  Split(buf,	
  vbCr)	
  
	
  	
  	
  	
  For	
  i	
  =	
  0	
  To	
  Ubound(tmp)	
  
	
  	
  	
  	
  	
  	
  	
  	
  Debug.Print	
  tmp(i)	
  
	
  	
  	
  	
  Next	
  i	
  
End	
  Sub
VBAに関する知識・技術
知識・技術を組み合わせて	
  
マクロを作り上げる	
  
構成力・発想力・イメージ力
VBAでマクロを・・・
作れるようになるには?
読めるようになるには?
VBAでマクロを・・・
作れるようになるには?
	
   作る練習をしなくてはならない!
読めるようになるには?
VBAでマクロを・・・
作れるようになるには?
	
   作る練習をしなくてはならない!
	
   しかし、VBAのドリルはない!
読めるようになるには?
VBAでマクロを・・・
作れるようになるには?
	
   作る練習をしなくてはならない!
	
   しかし、VBAのドリルはない!
読めるようになるには?
	
   基礎を学習しなくてはならない!
VBAでマクロを・・・
作れるようになるには?
	
   作る練習をしなくてはならない!
	
   しかし、VBAのドリルはない!
読めるようになるには?
	
   基礎を学習しなくてはならない!
	
   しかし、誰も教えてくれない!
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
マクロ記録で作りましょ
う!
まずマクロ記録しましょ
う!
マクロ記録で作りましょ
う!
まずマクロ記録しましょ
う!
無理
マクロ記録では
マクロを作れな
い!
マクロ記録は
作る機能じゃな
い!
マクロ記録は
調べる機能だ!
マクロの作り方
マクロの作り方
• マクロは、最初から手入力して作る
マクロの作り方
• マクロは、最初から手入力して作る
• 分からないことは、マクロ記録で調べる
マクロの作り方
• マクロは、最初から手入力して作る
• 分からないことは、マクロ記録で調べる
• マクロ記録は、作る機能ではなく

分からないことを調べる機能
マクロの作り方
• マクロは、最初から手入力して作る
• 分からないことは、マクロ記録で調べる
• マクロ記録は、作る機能ではなく

分からないことを調べる機能
なぜ、マクロ記録ではマクロを作れないのか?
記録したコードを
ちょっと直しましょう
‫ترسل‬ ‫التحقيق‬ ‫ومسألة‬
.‫الحق‬ ‫وقت‬ ‫في‬ ‫التفاصيل‬
.‫لكم‬ ‫وشكرا‬ ،‫الهتمامكم‬ ‫لكم‬
VBAの基礎が
分からなかったら
ちょっと直せない
まずマクロ記録
ではなく
まず基礎を学ぶ
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
インターネットとは
誰でも簡単に
情報を発信できる場
シロウトでも
VBAのことを語れる
てゆーか
ほとんどシロウト
• VBAのシロウト

	
   VBできるからVBAもできる(みたいな)
• VBAのシロウト

	
   VBできるからVBAもできる(みたいな)
• Excelのシロウト

	
   ワークシート関数や機能は詳しくない
• VBAのシロウト

	
   VBできるからVBAもできる(みたいな)
• Excelのシロウト

	
   ワークシート関数や機能は詳しくない
• 教えることのシロウト

	
   自分ができる、ということと

	
   他人をできるようにする、ということは

	
   まったく別の話
でも・・・ネットに書いてる人って	
  
(何も知らない)自分より	
  
(少しは)詳しいだろうから・・・
でも・・・ネットに書いてる人って	
  
(何も知らない)自分より	
  
(少しは)詳しいだろうから・・・
他人に何かを教えるときは	
  
「少し」詳しいだけではダメ!
マクロを作るとき
最も重要なこと
どうすればできるか
どうすればできるか
なぜ、そうするのか
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
1. 学習のしかたが間違ってい
る
2. マクロ記録で作ろうとして
いる
3. ネットの情報に頼っている
基
礎
を
学
べ
1. VBAの学び方
2. マクロの作り
方
Excelのマクロは
実務で使う道具
道具は
引き継がれる
他の人が
使えない道具は
意味がない
他の人が
読めないマクロは
意味がない
後任者に
マクロを
引き継ぐには
1. 自分が理解してい
る
2. 可読性を高める
1. 自分が理解してい
る
2. 可読性を高める
基
礎
を
学
べ
サイバーエージェン
トさんのご協力で
無料講演をやりま
す
6月3日(火)20:00-22:30
渋谷マークシティウエスト
17Fセミナールーム
http://qixil-­‐tanaka.peatix.com

誰も教えてくれない、Excelマクロ/VBAの使い方 先生:田中亨(Office TANAKA)