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,086