PR
私が使っているPCガジェット類
作業環境で実際に使っている・気になっている周辺機器などをまとめました
※ 一部のリンクは広告(アフィリエイト)を含みます
作業環境で実際に使っている・気になっている周辺機器などをまとめました
※ 一部のリンクは広告(アフィリエイト)を含みます
皆さんプログラミングしていますか?
プログラミングなんて簡単!・・とは言いませんが、これだけITが発展した現代においては一定の知識を持っていて損はないですし、業務効率の代名詞と言える”システム化”を担当するには必須レベル
IT職ではない人でも身近でトライ&エラーし放題、身に着けたスキルがすぐに活かせるEXCELとVBAがいいんじゃないかと言うことで今さらではありますがVBA入門を私なりにまとめます
VBAを始める前にまずVBAの概要とExcelの準備です
VBA(Visual Basic for Applications)は、Microsoft 365・Office製品(Excel、Accessなど)で使用できるプログラミング言語です
よくVBAとマクロの違いみたいな話を見ますがマクロは機能名でVBAはその中身って感じで会話の中では同じものとして扱って大丈夫かなと
VBAを使いこなせば、これまで何時間もかかっていた作業がボタン一つで一瞬で終わる、なんてことも夢ではありません
ExcelでVBA始めるならまず開発タブを表示しましょう
正直慣れるとVBEの画面は”Alt+F11“で開くしマクロは”Alt+F8“で実行しちゃうので使う頻度は減りますが最初はあったほうが便利です

VBAを学ぶ上で、最低限知っておきたい基本的な概念をいくつか紹介します
最初は難しく感じるかもしれませんが、深堀は別でやりますので今は「こういうものがあるんだな」くらいの気持ちで読み進めてください
プログラミングでは、データ(数値や文字列など)を一時的に保存しておくための「箱」のようなものを使いますが、この箱のことを変数や定数と呼びます
Sub test()
Const tax_rate As Double = 0.1 '---税率
Dim price_excluding_tax As Long '---税抜き価格
Dim price_including_tax As Long '---税込み価格
price_excluding_tax = 1980
price_including_tax = price_excluding_tax * (1 + tax_rate)
Debug.Print (price_including_tax)
End Sub
変数や定数には、どんな種類のデータを入れるかをあらかじめ決めておく必要があり、これをデータ型と呼びます
例えば、数値を扱うのか、文字を扱うのか、日付を扱うのか、といった区別です
| データ型 | 内容 | 例 |
|---|---|---|
| Long | 整数 | 1, 100, -50 |
| String | 文字列 | “こんにちは”, “Excel” |
| Date | 日付・時刻 | 2025/08/30 |
| Boolean | 真偽値 (True/False) | True, False |
プログラムは基本的に上から下へ順番に実行されますが、フロー制御を使うことで状況に応じて処理の流れを変えることができます
' A1~A10のセルの中で300以上の数字だったら文字を赤くする
Sub test()
Dim i As Long
For i = 1 To 10
If Cells(i, 1).Value >= 300 Then
Cells(i, 1).Font.Color = RGB(255, 0, 0)
End If
Next
End SubVBAでは、一連の処理のまとまりをプロシージャと呼びます
機能や仕組みではなく、役割や考え方みたいな位置づけなので必ずしもこの二つが必要ってわけではなく簡単なプログラムならプロシージャー1つなんてことも多々ありますし、サブプロシージャーのさらにサブプロシージャーを作ったりすることもあります
車でいうとメインプロシージャが車の組み立て、サブプロシージャーが各部品の作成のイメージですね
Sub MainProcedure()
Debug.Print ("これがメインプロシージャーです")
Call SubProcedure1
Call SubProcedure2
End Sub
Sub SubProcedure1()
Debug.Print ("これがメインプロシージャー1です")
End Sub
Sub SubProcedure2()
Debug.Print ("これがメインプロシージャー2です")
End Sub
VBAは自分だけでなく、他の人がコードを読む(または将来の自分が見返す)可能性もあります
誰が見ても分かりやすい、可読性の高いコードを書くことは非常に重要です
インデントとは、行頭の字下げのことで処理の塊(ブロック)を視覚的に分かりやすくするために行います
If文やFor文などフロー制御の中の処理は、インデントを下げるのが一般的です
処理の塊で行頭にタブキーかスペース(一般的には半角スペース×4)を付けます
' 悪い例
If Range("A1").Value > 10 Then
MsgBox "10より大きいです"
End If
' 良い例
If Range("A1").Value > 10 Then
MsgBox "10より大きいです"
End If変数やプロシージャの名前は、その役割がひと目で分かるように付けることが大切です
例えば、”a"や”b"のような無意味な名前ではなく、"userName"(ユーザー名)や"calculateTotalPrice"(合計金額を計算する)のように一見して意味が分かるようにすることが望ましいです
書き方にも規則性がありまして”定数は全て大文字にする”、”プレフィックスでデータ型を示す”、”単語を特定の文字で繋ぐ”などなど言語や時代によって変化はありますが少なくとも一つのプログラムの中では一貫したルールにすべきです
VBAのコードを記述する場所をモジュールと呼びます
モジュールにはいくつか種類がありますが、初心者がまず覚えておくべきなのは以下の2つです
今回は、VBAの魅力とその基本的な概念についてお話ししました。最初は覚えることが多くて大変に感じるかもしれませんが、一つ一つは決して難しいものではありません。
VBAを学ぶ最大のメリットは、日々の業務に直結するスキルであるということです。学習したことがすぐに実践で活かせ、成果が目に見えやすいので、モチベーションを維持しやすいのも特徴です。
このブログでは、今後もVBAの具体的な書き方や便利なテクニックをどんどん紹介していきます。ぜひ、次回の記事もチェックして、退屈な繰り返し作業から解放され、より創造的な仕事に時間を使えるようになりましょう!✨
[temp id=2]
PythonとExcelを中心に仕事に役立つ業務ツールや自動化、スクレイピングツールの作成を受注していて、クラウドワークスでは気が付けば100件以上のお仕事を受注してきました!
会社員をやりながらの副業なので時間の捻出は相応ですが、クライアントの方々と近い立場でこちらからも提案しながら活動していますのでお悩みあれば是非ご相談ください
VBAとPythonを中心にユーザー側でできるITを自己学習しているので備忘録半分、学習履歴を残して同じ道を辿る人の参考になればとブログを始めました
副業でスクレイピングツール作成を中心にできることを色々やっていますのでご相談いただけるとありがたいです!
クラウドワークスのページへ
ココナラのページへ
コメント