プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

スタハEXCELセミナー VBAの使い方

今回はEXCEL講座の第2弾です。

今回はVBAになりますが、こればっかりはいきなり実用性を求めることができないので今回のセミナーはすぐに使えるというより使い方講座だと思ってください。
応用は次回やります!!

VBAとは!?

VBAとはVisual Basic for Applicationの略でプログラミング言語です。
プログラミングと聞くと嫌な雰囲気を感じるかもしれませんが、他のプログラミングよりEXCEL VBAはとっつきやすいのでご安心を!!

じゃあなにやるの??ってことなんですが、普段やってるめんどくさい入力作業やデータ加工を自動でEXCELにやってもらうということが目的です。

それってワークシート関数で十分じゃない??とおもいますが、確かにそれですめばそのほうが手っ取り早いのでそれでOKです。
ただ、それで済まない場合というのがあります。例えば、シートを100個コピーするとか、自動で印刷するとか、そんなこともできてしまいます。

これって実用的だと思いませんか??

今回はそれを行うための基礎的な扱い方を勉強します。

まずは準備

※Microsoft Excel 2019での説明になります。バージョン違いは適宜調べてください。m(_ _)m

[ファイル]から[オプション]を選択してください。
f:id:hanabusa-snow:20210622162047p:plain


[リボンのユーザー設定]を選択

f:id:hanabusa-snow:20210622162051p:plain


[開発]にチェックを入れてください。
f:id:hanabusa-snow:20210622162055p:plain


タブに[開発]がでてきたらOKです。
f:id:hanabusa-snow:20210622162058p:plain

では試してみましょう

挿入を押して f:id:hanabusa-snow:20210622162102p:plain

[フォームコントロール]の左上のアイコンをクリックしてみましょう。
f:id:hanabusa-snow:20210622162106p:plain
ボタン作成ができるので、適当なサイズで作成してください。


以下のような画面が出てきます。
f:id:hanabusa-snow:20210622162110p:plain

[マクロ名]はこれから作成するプログラムの名前です。
何でも構わないのですが今回は[TEST]にしておきます。
その後に[新規作成]ボタンを押しましょう。


こんな画面が出ると思います。
f:id:hanabusa-snow:20210622163336p:plain

次にここにプログラムを書いていきます。

プログラムを書いてみよう。

ではまず、以下の通りに書いてみましょう。

Sub test()

    Range("A1") = 123

End Sub

f:id:hanabusa-snow:20210622162113p:plain

さきほど作成したボタンを押してみましょう。
f:id:hanabusa-snow:20210622163735p:plain
A1に123が挿入されました。

Rangeは、セルの位置を指定できます。


Range以外にcellsというセルの位置指定もできます。

Sub test()

        Cells(1, 2) = 456

End Sub

f:id:hanabusa-snow:20210622162122p:plain

以下のようになります。
f:id:hanabusa-snow:20210622162125p:plain
cells(行,列)という意味になるので、1行目2列を指定しました。

繰り返し

同じような処理を繰り返すとき、for文を使います。
1から100までの数字をセルに代入してみます。

Sub test()

    For i = 1 To 100
        
        Cells(i, 1) = i
                
    Next i

End Sub

f:id:hanabusa-snow:20210622162131p:plain

これを実行すると以下のようになります。
f:id:hanabusa-snow:20210622162134p:plain

条件分岐

特定の条件において処理をさせたいとき、if文を使います。
例えば、さっきの繰り返しを行って、偶数の時には2列目に”偶数”と表示してみます。

Sub test()

    For i = 1 To 100
      
        Cells(i, 1) = i
        
        If i Mod 2 = 0 Then
        
            Cells(i, 2) = "偶数"
        
        End If
               
    Next i

End Sub

f:id:hanabusa-snow:20210622162139p:plain

結果はこの通りです。
f:id:hanabusa-snow:20210622162143p:plain

ちょっと遊んで色を付けてあげることもできます。

Sub test()

    For i = 1 To 100
        
        Cells(i, 1) = i
        
        If i Mod 2 = 0 Then
        
            Cells(i, 2) = "偶数"
        
            '文字色を白にする
            Cells(i, 2).Font.Color = RGB(255, 255, 255)
            
            
            '背景色を青にする
            Cells(i, 2).Interior.Color = RGB(0, 0, 255)
            
        End If
        
        
    Next i

End Sub

f:id:hanabusa-snow:20210622162149p:plain

こんなかんじです。
f:id:hanabusa-snow:20210622162153p:plain

ちょっとした応用

九九表を作ってみましょう。
for文だけで簡単に九九表が作れます。

Sub 九九表()

    For tate = 1 To 9
    
        For yoko = 1 To 9
        
            Cells(tate, yoko) = tate * yoko
        
        Next yoko
    
    Next tate
    
End Sub

f:id:hanabusa-snow:20210624215052p:plain

こんな感じの結果です。
f:id:hanabusa-snow:20210622162201p:plain

保存の際は気を付けよう

VBAのプログラムはxlsmという拡張子で保存しないと消えてしまいます。
保存時は[EXCEL マクロ有効ブック]で保存しましょう。
f:id:hanabusa-snow:20210622170327p:plain

本日はお疲れ様でした

模範回答はこちらです。

事業紹介

Pythonプログラミングの初心者向け講座やってます。

プログラミング学びたい方で、少人数でじっくり学びたい方!!
ぜひご覧ください!!

pumpkin-labo.com

データ加工・整理、分析の請負をやってます。

学校向けにサービス展開してますが、企業さま向けにもサービス可能です。
御社の事業のなかで、データ整理や活用にお困りの場合はぜひご相談ください。 データベースの運用代行やシステム開発もやってます。

pumpkin-labo.com

Facebook

ぜひ友達登録お願いします!!

www.facebook.com