プログラミング

VBAでお仕事効率化

投稿日:2020年10月7日 更新日:

みなさんはExcelを仕事で使用していますか?
Excelの中には「VBA」というものが搭載されています。
この「VBA」が使えればいつものルーティンワークも自動化することができます。
今回は「VBA」の使い方を紹介していきます。

VBAとは

Visual Basic for Applications
(ビジュアルベーシック・フォー・アプリケーションズ)
というプログラミング言語です。
Excel,Word,PowerPointなどOfficeのアプリの機能をカスタマイズできます。

VBAの使用例

以前に仕事で社有車の予約表を作成したのがこんな感じです。

この「予約」、「取り消し」ボタンにマクロというものを登録しています。
マクロ機能(動作の仕方)を書いているのが「VBA」になりますね。

これがコードです。

使用者に自分の名前、使用時刻に開始時刻と終了時刻を入れて「予約」ボタンを押すとこんな感じで動作します。

Sub 予約()
    Dim user As String, userow As String
    Dim starttime As Integer, endtime As Integer
    Dim i As Integer
   
    Set s = Sheet1
    With s
        Range("C1").Value = Format(Now, "yyyy/mm/dd")
        user = Range("C4")
        userow = Range("A50").End(xlUp).Offset(1, 0).Row
        Range("A50").End(xlUp).Offset(1, 0) = user
        If Range("B6").Value = "" Or Range("C6").Value = "" Or Range("B6").Value >= Range("C6").Value Then
        MsgBox "入力時間が正しくありません"
        End If
        starttime = Application.WorksheetFunction.Match(Range("B6"), Range("D8:Z8"), 0)
        endtime = Application.WorksheetFunction.Match(Range("C6"), Range("D8:Z8"), 0)
        For i = starttime To endtime
            i = i + 3
            If Not .Cells(userow, i).Interior.ColorIndex = 3 Then
                .Cells(userow, i).Interior.ColorIndex = 3
              Else
                MsgBox "この社有車は" & "は" & "予約済みです"
               Exit For
            End If
                 i = i - 3
        Next i
    End With
End Sub

コードを載せておきますね。

VBAの使い方(開発タブの設定)

既定のExcelではマクロが無効になっていたり、VBAを使用するための「開発タブ」が隠れているのでそれを有効にしていく必要があります。

開発タブを設定しよう

ファイル画面からオプションをクリックします。

「リボンのユーザー設定」から「開発」にレ点をつけて「OK」をクリックします。

そうすると開発タブが表示されますね。
これで開発環境が整いました。
左上の「Visual Basic」を開いてみましょう。

「VBA」では主に「標準モジュール」を使用すると思います。
開き方は上の写真の通りです。
「VBA」で調べると出来上がっているコードがコピーできるので実際に張り付けて動かすなどして理解を深めていきましょう。

まとめ

Excelを使用している方だったら「VBA」を活用している方は多いはずです。
使いこなせるようになれば今の業務が格段に楽になるはずです。
ぜひ活用してみてください。
それではまた。

-プログラミング
-

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

【WTForms】IntegerFieldを使ってみる

今回は「wtforms」の「IntegerField」を使ってみたいと思います。 IntegerFieldを使ってみる 「Integer」とは「整数」という意味です。なので「整数」のみ受け取るフォーム …

Anaconda(アナコンダ)について

Pythonを学習していくにあたって様々な用語を目にします。今回はその1つである、Anacondaについて触れていきます。 Anacondaとは AnacondaはPythonが入っているのは勿論のこ …

【Python】加工した画像を保存してみよう

これまで「OpenCV」を使って、画像の読み込み、表示、リサイズなどを実践してきました。今回は、その加工した画像を保存してみたいと思います。 加工した画像を保存してみよう 今回も、前回のコードに追記す …

【Python】ANACONDA NAVIGATORを使ってみよう

今回は「ANACONDA NAVIGATOR」でライブラリのインストール方法を紹介します。 ANACONDA NAVIGATORを使ってみよう 「ANACONDA NAVIGATOR」を使えば、簡単に …

【Python】Flask-WTFを使ってみる①

今回は「Flask-WTF」について紹介していきます。これはFlaskでアプリを作成する際に、簡単に「フォーム(Form)」を作成できるものです。実際に試していきたいと思います。 Flask-WTFを …

YouTube