ExcelとVBAの入門解説
エクセルの神髄

マクロVBAを初心者向けの基本から上級者向けの高度な内容までサンプルコードを掲載し解説しています
最終更新日:2026-01-08

本サイトについて

エクセル(Excel)およびマクロVBA全般について入門解説から上級者に役立つ技術情報まで幅広く発信しています。
その他として、GAS、Python、SQLといった関連情報も掲載しています。

エクセルやVBAを使った簡単なツールからシステム開発まで対応いたします。
ご依頼は、お問い合わせフォームからお受けしております。
お気軽にご相談ください。

エクセル入門 :必須ショートカットキー、操作、機能、関数を、入門・初級・初心者向け解説
エクセル基本操作 :エクセル基本操作を解説。知ってそうで知らない操作や高度な操作も
エクセル関数応用 :エクセル関数の応用技。サンプルと基本から応用・高等テクニックまで
エクセル練習問題 : 簡単にできそうなのに意外になかなか出来ない問題を揃えていきます
ツイッター出題回答 : ツイッターに出題したエクセルのお題と出題された問題への回答
エクセル雑感 : Eexceの操作や関数、マクロVBAについての一般的な話や雑感です
Excelリファレンス : ショートカットキー一覧、関数一覧、祝日一覧等々

ExcelマクロVBA入門 : VBA入門・基礎として、未経験者でも理解できるように詳しく説明
ExcelマクロVBA再入門 : 書籍やWEBをみて結局挫折してしまった方を対象に実戦形式で
マクロの記録で覚えるVBA : マクロの記録のVBAコードの解読と修正しつつVBAを覚える
MOS VBAエキスパート対策 : VBAエキスパート試験に必要なVBA知識についての対策
マクロVBA練習問題 : マクロVBA入門学習の一環として練習問題を用意
VBA100本ノック : ツイッター連動企画として、VBAの問題を100本掲載しています

ユーザーフォーム入門 : ユーザーフォームの初歩から応用まで
VBAクラス入門 : VBAクラスの使い方やオブジェクト指向について
マクロVBAサンプル集 : なるべくそのまま使えるようにしたVBAサンプル集
マクロVBA技術解説 : 良くある問題や少々難度の高い使い方等に対する技術的解説
エクセル顧客管理 : 顧客管理の作成過程をプログ掲載したものの転載
ExcelマクロVBA関数 : 一般的に良く使われる必須となるVBA関数を解説
Excelリファレンス : VBEショートカット、VBA関数、各種プロパティ・メソッド一覧

Python入門 : 近年非常に人気が高いPython言語をVBA経験者に向けた入門解説です
SQL入門 : エクセルのマクロVBAから外部データベースを扱う方法について解説します
スプレッドシート入門 : 随所でExcelとの対比を掲載しながら説明しています
Google Apps Script入門 :GASでスプレッドシートを扱う事に絞って解説しています
生成AI活用研究 :Geminiを中心に生成AIの活用と研究を記録していきます。

※本サイトはリンクフリーです、ご自由にリンクして頂いて構いません。



サイト全体の更新情報・お知らせ

4択クイズを作成しました。
エクセル入門 4択クイズ
VBA入門 4択クイズ
生成AIパスポート試験 練習問題(四股択一式)
生成AI活用研究」を開始しました。
生成AIの近年の凄まじい進歩についていけるように新シリーズを開始!
生成AI全般」「プロンプトエンジニアリング」「エクセル数式対決」「Geminiと100本ノック
LAMBDA関数と6つのヘルパー関数の解説を追加しました。
さらに、配列を便利に扱える関数等も多数追加されましたので、これらの関数の解説も追加しています。
LAMBDA以降に追加された関数 , LAMBDA以降の新関数の問題集
数式を入力したセルから結果があふれて隣接したセルにも出力される新機能のスピル。
スピルの基礎から応用までのスピル問題集を追加しました。
新シリーズ!ツイッター連動企画「VBA100本ノック」を開始しました。
ツイッターで1日1本出題し翌日解答VBAを出します。
2021/03/03に最後の100本目を出しました。
新シリーズ「Python入門:プログラミング事始め」を開始しました。
人気のプログラミング言語Pythonを初心者向けに基礎から解説。
ロリポップサーバーをハイスピードプランに変更しました。
ページの表示速度は以前より早くなっています。
新シリーズ「SQL入門」を開始しました。
DBは扱いやすいようにSQLiteを採用しています。
SQL初心者向けに基礎から解説します。
PC版の上部メニューをドロップダウン形式にしました。
マクロVBAのメニュー構成も若干変更しています。
VBAコードのコピーボタンを設置しました。
サイトの文字コードをUTF-8に変更しました。
この際に使ったVBAコードも掲載しています。
Shift_JISのテキストファイルをUTF-8に一括変換
サイト全体をリニューアルしました。
横幅を広げ、文字も少し大きくしました。
サイト全体をHTTPS化(常時SSL)しました。
HTTP/2プロトコルにより、レスポンス速度が向上しています。
ブックマークしている場合は、HTTPSへ変更してください。
新シリーズとして、「MOS VBAエキスパート対策」を開始しました。
MOS VBAエキスパートの、ベーシック、スタンダード合格に必要なVBAの解説です。
「2020年小学校プログラミング必修化」、大人はVBAから始めてみましょう。
最も閲覧されているのが、「マクロVBA入門」です。
最初に書き始めてから7年近く経過しています。
第1回から順次見直し誤字脱字の修正をしつつ、必要に応じ説明文を追加しています。
久しぶりの大型記事を書き始めました。
オセロを作りながらマクロVBAを学ぼう
オセロ作りを通して、思考整理しVBAプログラミングの学習が目的です。
遅ればせながら、Google スプレッドシート の入門編を開始します。
ゆくゆくは、Google Apps Scriptの神髄にまで迫りたいと思います。
各ページの本文右上に、最終更新日を追加しました。
元ファイルの更新日ですので、公開日とは若干違う場合があります。
誤字脱字だけの修正をしている場合もあります。
久しぶりの新企画をスタート、ExcelマクロVBA再入門
理屈は最低限に、とにかくマクロVBAが書けるようになることが目的です。
スマホ対応サイトへリニューアルしました。
いわゆるレスポンシブCSSを使ったものとなっています。
これにともない、イメージも一新しました。
1年ほど前にフォルダ構成を変更し、2ヶ月前に旧ファイルを削除しました。
サイト内のリンクが消えても、Googleクロールエラーが無くなりません。
そこで、旧URLは301リダイレクトを設定しました。
各ページのレイアウトを少し変更しました。
行間を広くしたので読みやすくなったと思います。
※サイトのタイトルを「エクセルの神髄」としました。
「神髄」は本質、奥義の意味です。基本の積み重ねこそが奥義です。
サイト構成をエクセル中心に変更しました。
従来のトップページは、★旧トップページ★よりお入りください。
都合により、フォルダ構成を変更しました。
旧URLは、しばらく残しますが、いずれ削除予定です。
ブックマーク等をしている場合は変更をお願いいたします。
独自ドメイン取得しました。
エクセル色を強めました。
全体的にリニューアルしました。
使い易くなっていれば良いのですが。

新着記事NEW・・・新着記事一覧をもっと見る

シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
ネットで、「AIが機械語を」という話が盛り上がっていたので、なんとなく思いついたままに自分の考えを書いてみました。シンギュラリティ前夜 アダム(AI)が、人間には理解できないどころか、読むことすらできないコードを出力し始めた。後に判明することだが、それは機械語だった。
電卓とプログラムと私|エクセル雑感(2025-12-30)
1976年、高校1年の春。校舎の片隅、木の机が並ぶ教室には、春の柔らかい光が差し込んでいた。その高校には「電卓部」という、今思えば少し奇妙な名前の部活があった。部室の片隅には、オリベッティのプログラム電卓が置かれていた。
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
エクセル関数に関する以下の調査アンケートを実施しました。以下の2つの数式について、その処理速度を比較した説明として適切と思うものを選んでください。=VLOOKUP(C:.C,A:B,2,0) =XLOOKUP(C:.C,A:A,B:B) ※検索値は全て範囲内に存在します。
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
一覧リストを使用して、「入力規則」の「リスト」を2段階で絞り込めるように作成します。1段目のリスト選択により、2段目のリストが自動変化します。以下の記事で紹介している内容と同じです。入力規則のリストを、2段階の絞り込みで作成1 入力規則のリストを、2段階の絞り込みで作成2一覧リストを使用して、「入力規則」の「リスト…
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
IFS関数はExcel2019で新たに追加された関数です。IFS関数(複数条件) VBAでセルの.Formula(スピル非対応)プロパティに数式を入れるとき、その数式が「スピル数式」(複数セルに結果が出力される数式)であれば、関数の先頭または引数のセル範囲の先頭に「@」が自動的に追加されます。
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
エクセル練習問題 ■:数値10で1個、10個で改行 □:数値1で1個 シンキングタイム シンキングタイム開始 シンキングタイム終了 当サイトのコンテンツ 自分に合った、学習方法を見つけましょう。エクセル入門 エクセル基本操作エクセルの基本操作について解説。
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
個別事情はあるので一概には言えませんが、今の時点でVBAでシステム開発するのは、さすがに再検討した方が良いと思います。とくに、AIで分析できないような独自実装は避けた方が無難です。なお、転記や軽い自動化であれば、今でも、そしてこれからも有効な使い方だと思います。
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
X(旧Twitter)でGrokにVBAを作成してもらいました。現在のブック内のすべてのワークシートの条件付き書式を取得して、それを再現するVBAコードです。以下に、Grokとの全やり取りと、完成VBAを掲載します。
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
購入履歴テーブル(顧客、日付、商品、金額)を用いて、各購入レコードに対してその顧客の直前の購入データ(前回購入日、前回商品、前回金額)を付与する処理を実装します。この処理は、次に購入する商品を予測する上で不可欠な前処理となります。以下では、4通りの手法を紹介しています。
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
X(Twitter)で、【VBA問題】として出した4択問題を集めました。ちょっと捻った問題が多いので、全問正解するのは、結構難しいかもしれません。ページ内目次 小数誤差の解消 EOF関数の使い方 +演算子の挙動 エラー発生個所の把握1 エラー発生個所の把握2 SortFieldsの指定方法 Str関数、
実績/予算ごとの3年間通算累計を出力|エクセル練習問題(2025-11-15)
エクセル練習問題 D8:O13にD2:O7の実績/予算ごとの3年間通算累計を出力してください。※画像参照 お好きな方法で良いです。どんな方法が良いのだろうか🤔 なるべく簡単で、なるべく保守しやすい方法。
【何かの情報試験に出るかもしれない問題】4択クイズ|エクセル雑感(2025-11-16)
ここで出題する問題は、何かの情報試験に出るかもしれないし、出ないかもしれないし、そもそも何のテストの範囲に含まれているかもわからない… しかし、IT時代の今、知っておいて損はない(はずの)問題を選んでいます。間違えた問題や詳しく知りたい内容については、生成AIに聞くと詳しく教えてくれます。
最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
エクセル練習問題 画像に示されているように、担当者(A列)ごとに、横方向(B列からR列)に並んでいる「○」が最も長く連続している数(最大連続数)を求め、T列に出力するExcel数式を作成してください。※スピルは任意。数式が完成すればスピルにするのは簡単なので。
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
途切れることなく続いている連続期間の開始月と終了月を抽出するSQLを作成する問題です。SQLの練習用になるべく単純なSQLで済む問題を出します。SQLの練習として取り組んで見てください。問題 ※画像※画像はExcelです。
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
セル数式における「再帰」の必要性について、サイト運営者(著者)としての見解と、生成AIによる追記・補足です。セル数式における「再帰」の必要性:サイト運営者・著者の見解 「再帰」について まず最初にいいますが、私は「再帰」を使わない・使えない・使うな、とは言ってません。
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
掛け算(*)を使わずに掛け算をする数式を作成してください。足し算(+)を使わずに足し算をする数式を作成してください。計算可能な桁数は指定しません。たぶん、作成する数式によって様々な制限が出てくると思います。
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
エクセルで配列データを扱う際、行と列を入れ替える配置転換はTRANSPOSE関数で簡単にできますが、90度、180度、270度の回転は手間がかかります。本記事では、Excelの強力な動的配列機能(LAMBDA、MAKEARRAY、LET等々)を組み合わせ、引数一つで右回転、左回転、180度回転を自在に実行できるカス…
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQLの問題として、以下のような問題を出しました。カンマ区切りで格納された非正規化データを用いて多対多の関連を解消し、特定の有効期間条件のもとで値を集計する問題です。この記事では、SQLだけではなく、他の方法でもやってみて、どの方法が一番簡単か、楽か、短くて済むかを検討してみたいと思います。
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
カンマ区切りで格納された非正規化データを用いて多対多の関連を解消し、特定の有効期間条件のもとで値を集計する問題です。SQLの練習用になるべく単純なSQLで済む問題を出します。SQLの練習として取り組んで見てください。
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
特定商品を購入した人と、購入していない人の、それぞれの平均購入金額を求める問題です。SQLの練習用になるべく単純なSQLで済む問題を出します。SQLの練習として取り組んで見てください。問題 ※画像はExcelです。



アクセスランキング・・・ランキング一覧をもっと見る

1.最終行の取得(End,Rows.Count)|VBA入門
Excelワークシートにおける表の最終行の取得は、マクロVBAの必須技術になります、エクセルVBAにおける最終行取得の必要性 エクセルは表計算ソフトです、つまり縦横の表を扱います、データは横に項目があり、縦に項目に対するデータが入っている事が一般的です。しかし、そのデータ行数は決まった行数ではない事が普通です。
2.日本の祝日一覧|Excelリファレンス
2001年から50年分の日本の祝日一覧です、※来年以降の祝日については、祝日法の改正により変更される可能性があります。(内閣府のホームページには、通常は前年の2月に掲載されます。) ※以下の一覧は、祝日が変更された場合はなるべく速やかに反映させる予定です。
3.変数宣言のDimとデータ型|VBA入門
マクロVBA入門者が、まず最初につまずくのが、このDimで変数を宣言することでしょう。変数とは、数値や文字列など(すなわちデータ)を一時的に格納する入れ物 と良く説明されますが、まずはこの考えで良いでしょう。この入れ物には、いろいろなタイプの入れ物があります。
4.FILTER関数(範囲をフィルター処理)|エクセル入門
FILTER関数は、定義した条件に基づいてデータ範囲をフィルター処理した結果を返します。FILTER関数はスピルで登場した新しい関数です。最後の方では、表示する列を選択する方法も掲載しています。FILTER関数の書式 =FILTER(配列,含む,[空の場合]) 配列 必須です。
5.RangeとCellsの使い方|VBA入門
VBAではセルを指定する方法としてRangeとCellsがあります。RangeもCellsも、どちらもRangeオブジェクトでセルを指定するものです。✅どちらを使ったらよいのでしょうか ✅どう使い分けたらよいのでしょうか 実際のマクロVBA記述では、RangeとCellsを使い分…
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
値の貼り付けと題しましたが、値だけではなく、「形式を選択して貼り付け」のいろいろな指定方法です。セルをコピーして、他のセルに「形式を選択して貼り付け」する場合のマクロVBAコードです。セルの値や書式を別のセルにコピーすることはマクロVBAでは定番かつ必須の技術になります。
7.繰り返し処理(For Next)|VBA入門
VBAのForNextは、同じ処理を繰り返し行うためのVBA構文です。繰り返し処理はループ処理とも呼ばれます。マクロでのループ処理の記述は何通りかありますが、まず最初に覚えるべきものが、今回説明するForNextです。
8.セルのクリア(Clear,ClearContents)|VBA入門
セルをクリア・消去するマクロVBAの書き方です、クリア・消去するといっても、セルの何を(値、書式、コメント等々)クリア・消去するかによって、VBAコードが違ってきます。具体的には、セルの何を(値、書式、コメント等々)クリア・消去するかによって使用するメソッドが変わります。
9.マクロとは?VBAとは?VBAでできること|VBA入門
エクセルのマクロとは何でしょうか? ExcelのVBAとは何でしょうか? マクロで何が出来るのでしょうか? VBAで何が出来るのでしょうか? 「マクロ」とは、エクセルの操作を自動化する機能です。エクセルを自動化する機能が、「マクロ」と呼ばれています。
10.条件分岐(Select Case)|VBA入門
前回のElseIf以外に、多肢条件分岐の別の書き方があります。それがSelectCaseになります。むしろElseIfより、このSelectCaseの方が、より多肢条件分岐に適していると言えます。SelectCaseは、多肢条件分岐に特化したステートメントになります。
11.メッセージボックス(MsgBox関数)|VBA入門
メッセージを表示するダイアログボックス(小さな画面)を表示するVBAです。ユーザーに選択(「はい」「いいえ」や「OK」「CANCEL」等)してもらうことで、その選択結果を受け取る事も出来ます。マクロVBAでメッセージボックスを表示するにはMsgBox関数を使います。
12.InStr関数|VBA関数
Instr関数はVBAでは頻繁に使われる超重要の必須関数です。シート関数のFIND関数・SEARCH関数と同様機能のVBA関数になります。Instr関数は、文字列の中から指定した文字列を先頭から検索し、最初に見つかった文字位置を返す文字列処理関数です。
13.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
ワークブックを閉じる場合や保存する場合のマクロVBAの説明です。閉じる時に保存するか保存しないかを指定できます。また、ブックを保存するにも、上書きなのか別ファイルにするのか等によってVBAの記述がそれぞれ違ってきます。
14.とにかく書いてみよう(Sub,End Sub)|VBA入門
それでは、とにかくマクロVBAを書いてみましょう。VBEで実際にマクロを書いてみましょう VBE(VisualBasicEditor)に標準モジュールを追加したら、そこにマクロを書いていきます。sub練習1 と入力し、Enterして下さい、このように、subがSubと先頭が大文字になり、後ろに()が付きます。
15.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。しかし、"A1"や"B5"のような文字で指定するのでは何かと不便です、もっと、プログラムっぽい(笑)指定方法があります。
16.並べ替え(Sort)|VBA入門
並べ替えは、データ処理の基本中の基本です。乱雑なデータを並べ替えることはデータ処理の第一歩です。マクロVBAで並べ替えを実行するには、シート操作の「並べ替え」の機能を使用することになります。そもそもデータを並べ替えるという事は、そのデータのキーが何かを考えるという事です。
17.セルに文字を入れるとは(RangeオブジェクトのValueプロパティ)|VBA入門
前回実行したマクロを、もう少し詳しく見てみましょう。どうしてこれでセルに値が入るのか。どうやってVBAを読んだらよいのか。前回書いたVBAコード 前回書いたVBAは以下の通りです。これを少しだけ詳しく解説します。
18.セルの書式(罫線,Border)|VBA入門
マクロVBAで罫線を引く必要が出てくる場合は結構あるものです。新規シートにデータを出力した場合やデータ範囲がマクロで変更されてしまう場合、罫線を引き直す事が必要になってきます。ネット等を検索すると、罫線を引くマクロは書き方が千差万別となっているようです。
19.ブック・シートの選択(Select,Activate)|VBA入門
エクセルでは複数ブックを扱います。そして、それぞれのブックには複数のシートが存在します。従って、マクロVBAでも複数ブック・複数シートを扱う必要があります。ここまでのVBAでは、あくまでアクティブブックのアクティブシートを対象としてきました。
20.セルの書式(表示形式,NumberFormatLocal)|VBA入門
セルは表示形式を指定することで、セルに入っている値は同じ値でも色々な見え方をさせる事が出来ます。セルの値はそのままで、見た目をユーザーに見やすい形にすることが出来ます。同じ数値の、12345でも 12345 12,345 \12,345 等々の違う表示方法を指定する事が出来ます。


フリーソフト、シェアウェア・・・Excelは購入によりVBAコードも開示

※現在は公開を停止しています。

フリーソフト、シェアウェア、ソフト一覧

使った感想などをお寄せくだされば、今後の開発に生かしていきます。
試用版の場合は、プロダクトキーの入力だけで有料版へ移行できます。
まずは一度、お試し下さい。

「お客様第一」顧客管理システムは有料ソフトです、試用版を用意してあります。
「エクセル顧客管理」は顧客管理です。購入でVBAコードも開示します。
「エクセル営業管理」は見積・請求・スケジュール・会計管理です。購入でVBAコードも開示。
「たぶん同期」フォルダ同期ソフトはフリーソフトです、ご自由にどうぞ。
「エクセル集」総務部、社会保険労務士向け、完全フリーです。





このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ