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

マクロVBA情報を中心に、エクセル関数・基本操作までサンプルとともに解説
最終更新日:2020-11-28

本サイトについて

エクセル(Excel)およびマクロVBA全般について、
入門解説から上級者に役立つ技術情報まで幅広く発信しています。

「Excel全般」は、エクセルの操作と関数を基礎から応用まで。
「マクロVBA入門編」は、入門・基礎として、VBA未経験者でも理解できるように詳しく説明しています。
「マクロVBA応用編」は、VBA経験者(中級・上級)向けの技術解説およびVBAサンプルを豊富に揃えています。
「SQL入門」は、エクセルのマクロVBAから外部データベースを扱う方法について解説します。
「スプレッドシート入門」は、随所でExcelとの対比を掲載しながら説明しています。
「Google Apps Script入門」は、VBAでエクセルを扱うようにGASでスプレッドシートを扱う事に絞って解説しています。

※本サイトはリンクフリーです、ご自由にどうぞ。

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

新シリーズ「VBA100本ノック」を開始しました。
ツイッター連動企画です。
ツイッターで1日1本出題し翌日解答VBAを出します。
新シリーズ「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・・・新着記事一覧をもっと見る

VBA100本ノック 34本目:配列の左右回転|VBA練習問題(11月28日)
2次元配列を、左に90度回転または右90度回転する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック34本目 今回は2次元配列を使った頭の体操です。
VBA100本ノック 33本目:マクロ記録の改修|VBA練習問題(11月26日)
マクロの記録から作成したVBAを使いやすいように改修して処理速度アップする問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック33本目 「このVBAはマクロの記録から作ったのですが、件数の数値を変更してから実行しなければならず、
VBA100本ノック 32本目:Excel終了とテキストファイル出力|VBA練習問題(11月25日)
開いている全ブックを保存し、保存したブックのフルパスをテキスト出力する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック32本目 開かれているブック全てを上書き保存して、Excelアプリも終了させてください。
VBA100本ノック 31本目:入力規則|VBA練習問題(11月24日)
セルに入力規則を設定する問題です。ブックのシート一覧のリストにします。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック31本目 アクティブシートのA1セルに、入力規則の「リスト」を設定します。
将棋とプログラミングについて~そこには型がある~|エクセル雑感(11月22日)
将棋とプログラミングは似ているだろうか。似ている所もあるが違う違う所もある。答えになっていませんね(笑) 脳のどの部分を使うとか難しいことは分かりませんが、やっているときにどんなイメージを持ってやっているのでしょうか。
VBA100本ノック 30本目:名札作成(段組み)|VBA練習問題(11月22日)
名簿から段組みした名札を作成する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック30本目 古臭いですが名札を作ることになりました。
VBA100本ノック 29本目:画像の挿入|VBA練習問題(11月21日)
指定の画像をアクティブセル内に収まるように貼り付ける問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック29本目 ファイル選択ダイアログで画像ファイルを指定し、その画像をアクティブセルにリンクしない図として貼り付けてください。
VBA100本ノック 28本目:シートをブックに分割|VBA練習問題(11月19日)
ハイパーリンクのURLを取得する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック28本目 個人別のシートを個人別のブックに分けまます。
VBA100本ノック 27本目:ハイパーリンクのURL|VBA練習問題(11月18日)
ハイパーリンクのURLを取得する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック27本目 WEBページからコピーしてシートに貼り付けたら、セルの文字列にハイパーリンクが付いてきました。
VBA100本ノック 26本目:ファイル一覧作成|VBA練習問題(11月17日)
指定フォルダ内のファイル一覧を作成する問題です。Excelファイルにはハイパーリンクを設定します。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック26本目 フォルダ選択のダイアログでフォルダを指定し、
VBA100本ノック 25本目:マトリック表をDB形式に変換|VBA練習問題(11月15日)
縦横のマトリックス表をデータベース形式の縦に展開する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック25本目 画像1のように「売上」シートに横に日付と金額が入力されています。
VBA100本ノック 24本目:全角英数のみ半角|VBA練習問題(11月14日)
全角英数のみ半角かつ大文字にするFunctionを作成する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック24本目 引数で受け取った文字列に対して、以下の処理を行い文字列で返す関数(Function)を作成してください。
VBA100本ノック 23本目:シート構成の一致確認|VBA練習問題(11月13日)
2つのブックのシート構成が一致しているかを確認する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック23本目 ThisWorkbookと同一フォルダに"Book_20201101.xlsx"と"Book_202011…
VBA100本ノック 22本目:FizzBuzz発展問題|VBA練習問題(11月12日)
一般的なFizzBuzz問題を少しだけエクセル用に発展させた問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック22本目 たまにはちょっと遊んでみましょう!A列に1からの連番を出力してください。
VBA100本ノック 21本目:バックアップファイルの削除|VBA練習問題(11月11日)
開いているブックの古いバックアップファイルを削除する問題です。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック21本目 自身(ThisWorkbook)と同じフォルダに"BACKUP"フォルダがあります。
VBA100本ノック 20本目:ブックのバックアップ|VBA練習問題(11月10日)
開いているブックのバックアップファイルを作成する問題です。フォルダーの作成も行います。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック20本目 マクロブック(ThisWorkbook)と同じフォルダに"BACKUP"フォルダを作成し、
VBA100本ノック 19本目:図形のコピー|VBA練習問題(11月8日)
シートの全図形をコピーする問題です。繰り返し実行しても図形が増殖しないようにします。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック19本目 引数でWorksheetを受け取り以下の処理を行うSubを作成してください。
VBA100本ノック 18本目:名前定義の削除|VBA練習問題(11月7日)
名前定義を削除する問題です。名前定義から、非表示なっているものを表示し、参照不可になっている名前定義は削除します。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。
VBA100本ノック 17本目:重複削除(ユニーク化)|VBA練習問題(11月6日)
重複を削除してユニーク化(一意化)する問題です。社員データから、部・課マスタを作成します。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。出題 出題ツイートへのリンク #VBA100本ノック17本目 画像1のように部・課・氏名の「社員」シートがあります。
VBA100本ノック 16本目:無駄な改行を削除|VBA練習問題(11月5日)
文字列内の無駄な改行コードを削除する問題です。エクセルのセル内改行はLFですが、無駄に多く入っている改行コードを削除します。ツイッター連動企画です。ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。

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

1.最終行の取得(End,Rows.Count)|VBA入門
Excelワークシートにおける表の最終行の取得は、VBAの必須技術になります、エクセルVBAにおける最終行取得の必要性 エクセルは表計算ソフトです、つまり縦横の表を扱います、データは横に項目があり、縦に項目に対するデータが入っている事が一般的です。しかし、そのデータ行数は決まった行数ではない事が普通です。
2.RangeとCellsの使い方|VBA入門
VBAではセルを指定する方法としてRangeとCellsがあります、RangeもCellsも、どちらもRangeオブジェクトでセルを指定するものです。どちらを使ったらよいのでしょうか、どう使い分けたらよいのでしょうか、実際のVBA記述では、RangeとCellsを使い分ける必要があります、RangeとCellsの使い方・使い分け方について解説をします。
3.変数宣言のDimとデータ型|VBA入門
マクロVBA入門者が、まず最初につまずくのが、このDimで変数を宣言することでしょう。変数とは、数値や文字列など(すなわちデータ)を一時的に格納する入れ物 と良く説明されますが、まずはこの考えで良いでしょう。この入れ物には、いろいろなタイプの入れ物があります。
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
値の貼り付けと題しましたが、値だけではなく、「形式を選択して貼り付け」のいろいろな指定方法です。セルをコピーして、他のセルに「形式を選択して貼り付け」する場合のマクロVBAコードです。セルの値や書式を別のセルにコピーすることはマクロVBAでは定番かつ必須の技術になります。
5.マクロって何?VBAって何?|VBA入門
エクセルのマクロって何でしょうか? ExcelのVBAって何でしょうか? 「マクロ」とは、エクセルの操作を自動化するものです。その自動化する機能が、「マクロ」と呼ばれています。マクロの中身は、プログラムです。
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。"A1"や"B5"と言うような文字で指定するのでは何かと不便です、もっと、プログラムっぽい(笑)指定方法があります。
7.繰り返し処理(For Next)|VBA入門
VBAのForNextは、同じ処理を繰り返し行うためのVBA構文です。繰り返し処理はループ処理とも呼ばれます。マクロでのループ処理の記述は何通りかありますが、まず最初に覚えるべきものが、今回説明するForNextです。
8.セルに文字を入れるとは(Range,Value)|VBA入門
前回実行したマクロを、もう少し詳しく見てみましょう。どうして、これでセルに値がはいるのか、どうやってVBAを読んだらよいのか、少しだけ詳しく解説します。とにかくこれで、A1セルに、「おはよう!」と入る事がわかりました。
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
それでは、とにかく、マクロVBAを書いてみましょう。sub練習1 と入力し、Enterして下さい、このように、subがSubと先頭が大文字になり、後ろに()が付きます。そして、下に、EndSubが追加されます。
10.マクロはどこに書くの(VBEの起動)|VBA入門
さて、ではマクロVBAはどこに書いたらよいのでしょうか。まずは、マクロVBAを書くための紙に相当する編集画面を出します。このマクロVBAの編集画面をVisualBasicEditor、略してVBEと呼びます。
11.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
空白セルの判定は、VBAにおいては頻繁に発生しますが、正しく空白セルを判定する事は以外と難しいものです。そもそも「空白」とはどのような状態なのか… これが、はっきりしない為に何が正しいのかが判然としないことが問題を複雑にしています。以下、A1セルが空白かどうか判定する方法をいくつか紹介します。
12.繰り返し処理(Do Loop)|VBA入門
繰り返し処理として、前回はFor~Nextをやりました、今回はDo~Loopです。For~Nextに比べると使用頻度は落ちますが、必ず覚える必要があるものです。For~Nextは、繰り返す回数をあらかじめ指定するものでしたが、Do~Loopは、繰り返す回数ではなく、繰り返す条件を指定するものです。
13.Rangeでのセルの指定方法|VBA入門
前回までに出てきたRangeの使い方は、Range("A1") このように書くことで1つのセルを指定する場合でした。複数のセル範囲を指定する場合、矩形のセル範囲、行全体、列全体、特殊なセル範囲 これらの指定方法を見ていきましょう。複数のセル(矩形のセル範囲) 複数のセル(矩形のセル範囲)を指定する場合のVBAの書き方です。
14.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄
ExcelマクロVBAの基礎を学習する方法、マスターする道順についてです。ExcelマクロVBAは非常に便利です、手作業では、数時間・数日かかる処理が、ほんの一瞬で処理できてしまいます。ただし、マクロVBAを書く為に、相応の時間はかかりますが、それでも、そのマクロVBAを書く時間は一度きりです。
15.並べ替え(Sort)|VBA入門
並べ替えは、データ処理の基本中の基本です、乱雑なデータを並べ替えることは、データ処理の第一歩です。マクロVBAで並べ替えを実行するには、シート操作の「並べ替え」の機能を使用することになります。そもそもデータを並べ替えるという事は、そのデータのキーが何かを考えるという事です。
16.ブック・シートの選択(Select,Activate)|VBA入門
エクセルでは、複数ブックを扱います、そして、それぞれのブックには、複数のシートが存在します。従って、マクロVBAでも複数ブック・複数シートを扱う必要があります。ここまでのVBAでは、あくまでアクティブブックのアクティブシートを対象としてきました。
17.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数応用
数式の参照範囲を可変対応させます。つまり、入力データにより自動で拡張・縮小されるように関数を設定します。エクセルの表に、単純に集計等の計算式を入れてしまうと、集計範囲は固定になっているため、データの追加時に計算範囲が違ってきてしまう事になります。
18.まずはマクロVBAを使う準備|VBA入門
さっそくマクロを作りましょう。と、その前に、準備があります、上部のリボンに、「開発」タブを追加します、「開発」タブには、マクロを開発するにあたって必要なアイコンが並んでいます。※画像は、Excel2013になります。
19.ひらがな⇔カタカナの変換|エクセル基本操作
「ひらがな」を「カタカナ」に、「カタカナ」を「ひらがな」に変換する方法の説明です。ひらがな→カタカナ変換 A1セル「にっぽんたろう」、これをB1セルに「ニッポンタロウ」と表示するには、B1セルに、=PHONETIC(A1) これで、「カタカナ」で表示されたと思います。
20.条件分岐(IF)|VBA入門
ある条件の時だけ処理したい、ある条件の時は処理したくない、そのような条件によって処理内容を変更したい場合があります。VBAで条件により処理を分岐させたい場合に使うのが、Ifステートメントです。マクロVBAで自動化する場合の多くは、条件により処理を変えつつ一定回数繰り返すという事です。

エクセル(Excel)・・・エクセルの基本操作と関数

最低限知っておくべきエクセルの基本操作および関数を、
入門基礎から上級者に役立つ実践応用まで紹介しています。

★エクセルの基礎を学習する方法★

エクセル全般の全コンテンツ一覧

マクロVBA・・・VBAの基礎から実践応用まで

マクロVBAの初級者には基礎から詳しく解説、
VBA上級者には実戦で役に立つ情報をお届けしています。

★ExcelマクロVBAの基礎を学習する方法★

その他(Excel以外のコンテンツ)

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

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

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

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

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




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


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