Excelを楽しもう!
Excel 関数とVBAの基礎
http://gf8.work/XGfG
前回参加してない人
前回の資料無くした人
ここからDLしてね
マクロとVBA
VBAとは?
VBA
VBA
Visual Basic for Applications
Visual Basic for Applications
Microsoft Officeに含まれる
アプリケーションソフトの拡張機能
簡易なプログラムを記述して
実行する事で、複雑な処理の自動化
などを行う事ができるもの。
また、そのために用意された
プログラミング言語
マクロとVBA
Excel
関数
=sum(…
=if(…
マクロ
マクロの記録
VBAの作成・修正(VBE)
セキュリティレベルの設定
マクロ > VBA
(機能名) ≒ (言語名)
VBEとは?
Excelに標準でついている
Visual Basic Editor
という機能。
VBAを書くためのエディター。
開発タブ無い人〜?
Mac
Windows
Mac
Excel→環境設定→リボンとツールバー→右側 開発にチェック
Windows
ファイル→オプション→リボンのユーザ設定→右側 開発にチェック
マクロ機能を使ってみよう
ここ以降はMac版(ごめんなさい)
新規Bookを作ったら、
A1を選択して表示タブのマクロの記録ボタンを押下
Windowsはマクロボタン開くとマクロの記録ボタンがあると思う・・
マクロの名前をつける
今回はそのまま変更せずでOK
A1のセルに Hello と記載
記録終了ボタンを押下
①
②
③
④
記録したマクロの実行
実行確認のため、入力したHelloを消してください。
マクロの表示ボタンを
押下
作成したマクロが選択された状態で
実行ボタンを押下
①
②
Congratulations!!!
これで、あなたも立派なマクロ使いです!!
But!!
A1じゃなくて、
他のセルに入力
されちゃった人〜?
大丈夫!
間違いではありません。
何故なら・・
マクロ記録する前に
「A1」を選んで、そのままそこに入力したのですから・・
VBAを読んでみよう
マクロの表示ボタンを
押下
作成したマクロが選択された状態で
編集ボタンを押下
こんな画面出てきたら正解
マクロの自動保存は、
自動的に、このようなVBAの
コードをVBEに作成してくれます
コードの説明
なんかHelloって書いてる
A2をselect(選択)してる
Sub Macro1()
'
' Macro1 Macro
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "Hello"
End Sub
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveCell.FormulaR1C1 = "Hello"
Range("A2").Select
End Sub
今回は、A1 に Helloと入れたいので・・
まず、A1セルを選択します。
自動保存された セルの選択の書き方を
真似しましょう。
A2のセルを選択する必要は無いので
削除しましょう。
変更が終わったら、保存
(これ大事!!)
VBEからも実行できます。
R1C1ってなんなのさ?
R[-1]C[-2] | R[-1]C[-1] | R[-1]C | R[-1]C[1] |
---|---|---|---|
RC[-2] | RC[-1] | RC[1] | |
R[1]C[-2] | R[1]C[-1] | R[1]C | R[1]C[1] |
基準セル
(選択しているセル)
+
−
+
−
R = Row
C = Column
これ、覚えないとダメ?
大丈夫!
私、ほとんど使ってません!(威張る事じゃ無いっ)
Sub Macro1()
'
' Macro1 Macro
'
Range("A1").Value = "Hello"
End Sub
文字書くだけなら、こういう書き方もあります。
関数を記録して使う
A列に
りんご
バナナ
いちご
をランダムに並べた表がある。
--ここまでは自分で作る--
B列に
隣のAのセルがバナナだったら●
と返す関数を
上から下まで自動で入力する
コードを書く
Thinking Time
関数を入力して
間違いが無い事を確認したら
マクロの記録
入力したセルの中を選択して、
エンターを押下したら、
記録を終了
作成したマクロの編集を開く
Sub Macro2()
'
' Macro2 Macro
'
'
Range("B1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B2").Select
End Sub・・・・…………
やりたい事は書いてある!!
あとはこれをB18までやれば良い!
Sub Macro2()
'
' Macro2 Macro
'
'
Range("B1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B4").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B5").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B6").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B7").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B8").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B9").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B10").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B11").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B12").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B13").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B14").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B15").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B16").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B17").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Range("B18").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
End Sub
Sub Macro3()
For i = 1 To 18
Cells(i, 2).Value = "=IF(RC[-1]=""バナナ"",""●"",""×"")"
Next
End Sub
もっとシンプルに!!
次回以降は、この辺からやります!
まとめ
今日はこれで終わりです!
ありがとうございました〜〜
elv_excel2
By Ayako Matsumoto
elv_excel2
- 1,201