エクセルの神髄
鵜原パソコンソフト研究所

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

本サイトについて

エクセル(Excel)およびマクロVBA全般についての技術情報を提供しています。


「Excel全般」は、エクセルの操作と関数を基礎から応用まで。
「マクロVBA入門編」は、入門・基礎から上級向けの情報まで豊富に揃えています。
「マクロVBA応用編」は、入門・基礎から上級向けの情報まで豊富に揃えています。

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

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

「ExcelマクロVBA入門」の英語目次作成
Introduction to Excel VBA
各説明の英語ページは徐々に追加していきます。
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プログラミングの学習が目的です。
YouTubeで動画配信を開始しました。YouTube 動画一覧
手始めに、「ヤマサンゆったりマクロ」マクロの入門動画です。
チャンネル登録お願いします!
遅ればせながら、Google スプレッドシート の入門編を開始します。
ゆくゆくは、Google Apps Scriptの神髄にまで迫りたいと思います。
各ページの本文右上に、最終更新日を追加しました。
元ファイルの更新日ですので、公開日とは若干違う場合があります。
誤字脱字だけの修正をしている場合もあります。
久しぶりの新企画をスタート、ExcelマクロVBA再入門
理屈は最低限に、とにかくマクロVBAが書けるようになることが目的です。
スマホ対応サイトへリニューアルしました。
いわゆるレスポンシブCSSを使ったものとなっています。
これにともない、イメージも一新しました。
1年ほど前にフォルダ構成を変更し、2ヶ月前に旧ファイルを削除しました。
サイト内のリンクが消えても、Googleクロールエラーが無くなりません。
そこで、旧URLは301リダイレクトを設定しました。
各ページのレイアウトを少し変更しました。
行間を広くしたので読みやすくなったと思います。
※サイトのタイトルを「エクセルの神髄」としました。
「神髄」は本質、奥義の意味です。基本の積み重ねこそが奥義です。
サイト構成をエクセル中心に変更しました。
従来のトップページは、★旧トップページ★よりお入りください。
都合により、フォルダ構成を変更しました。
旧URLは、しばらく残しますが、いずれ削除予定です。
ブックマーク等をしている場合は変更をお願いいたします。
独自ドメイン取得しました。
エクセル色を強めました。
全体的にリニューアルしました。
使い易くなっていれば良いのですが。

エクセル新着記事NEW・・・新着記事一覧をもっと見る

VBAクラスのAttributeについて(既定メンバーとFor…Each)|VBA技術解説(10月19日)

VBAクラスをエクスポートすると各種のAttributeが設定されているのが確認できます。それぞれのAttributeの意味とさらに追加で指定できるAttributeについて説明します。Attributeの変更はVBA標準でサポートされていないのでその使用については慎重にあるべきですがどのようなものがあるかを知るのは
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
プログラミング言語には独特の用語があります。用語の理解があやふやなままで解説を読んでも理解がずれてしまう事もあります。VBAの用語は、プログラミング言語一般で使われている用語と同じ使い方も多いのですが、中にはVBA独自の使い方をしている場合もあります。
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)
VBAでは、基本的な決まりとして1ステートメントは1行で書くことになっています。しかし、あまりに長くなってしまうと見づらくなります。逆に、短いステートメントが多数行になっていても見づらい場合もあります。
VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(10月12日)
VBAの開発規模がある程度大きくなってくると、VBAソース管理の必要性を感じることもあると思います。モジュールの数も増えてきて、プロシージャー・プロパティが膨大になっきます。以下は、指定ブックの全モジュールの全プロシージャー・プロパティを一覧にするVBAサンプルです。
VBAでエラー行位置(行番号)を取得できるErl関数|VBA技術解説(10月11日)
VBAのデバッグでエラーが発生した行位置を特定する方法はいくつかあります。エラーが発生したVBAソースの行ラベルを取得することができる関数がErl関数です。Erl関数は、VB6に存在しVBAにも引き継がれ実装されているものです。
手動計算時の注意点と再計算方法|ExcelマクロVBA技術解説(10月9日)
セルを変更する度に再計算が動いてしまうと処理時間が遅くなってしまいます。そこでマクロVBAの中で、計算方法を手動にすることで対処することになります。このとき処理結果が期待した結果にならないといった事が起こらないように、手動計算時の注意点と再計算方法について解説します。
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(10月7日)
SubプロシージャーFunctionプロシージャーにおいて引数リストの数を特定せず不定個数の引数を渡せるよう可変にしたい場合があります。ワークシートの関数では引数の個数が不定の関数が多数あります。=SUM(数値1,数値2,...) このように最後が「,...」となっていていくつでも(限度はありますが)指定できる関数です。
VBEの使い方:デバッグ|ExcelマクロVBA入門(10月6日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではVBA開発で、重要かつ避けて通れないデバッグについて説明します。。
VBAにおける配列やコレクションの起点について|VBA技術解説(10月5日)
VBAの配列を扱っていると0から開始されていたり1から開始されていたりします。さすがに混乱したり間違ってしまう事もあると思います。0から開始される場合を「0オリジン」英語では「zero-based」1から開始される場合を「1オリジン」英語では「one-based」このような呼び方をします。
VBEの使い方:オブジェクト ブラウザー|VBA入門(10月5日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではオブジェクトブラウザーの使い方について説明します。オブジェクトブラウザーの表示 メニュー「表示」→「オブジェクトブラウザ」ショートカットはF2 初期設定では
VBEの使い方:ウォッチ ウィンドウ|VBA入門(10月4日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではウォッチウィンドウの使い方について説明します。ウォッチウィンドウの表示 メニュー「表示」→「ウォッチウィンドウ」初期設定ではコードウィンドウの下にドッキング表示されます。
VBEの使い方:ローカル ウィンドウ|VBA入門(10月3日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではローカルウィンドウの使い方について説明します。ローカルウィンドウの表示 メニュー「表示」→「イミィディエイトウィンドウ」初期設定ではコードウィンドウの下にドッキング表示されます。
VBEの使い方:イミディエイト ウィンドウ|VBA入門(10月2日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではイミディエイトウィンドウの使い方について説明します。イミディエイトウィンドウの表示 メニュー「表示」→「イミディエイトウィンドウ」ショートカット:Ctrl+G 初期設定では
VBEの使い方:ショートカットキーとコード編集|VBA入門(10月1日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではVBEのコード編集における、特に重要なショートカットキーと具体的な使い方について説明します。
VBEの使い方:右クリックメニューとヘルプ|VBA入門(9月30日)
VBE(VisualBasicEditor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。ここではマウスの右クリックで表示されるメニューを通して、各機能について説明します。また、合わせてヘルプについても説明します。
VBEの使い方:ツールバー|ExcelマクロVBA入門(9月29日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではツールバー(アイコン付きのボタン群)について説明します。ツールバーの表示方法 メニューの「表示」→「ツールバー」ツールバーは好きな位置に配置できます。
VBEの使い方:ツールのオプション設定|VBA入門(9月28日)
VBE(VisualBasicEditor)はVBAで使われるコードエディタコンパイラデバッガその他の開発支援ツールが統合された開発環境です。ここではVBEの環境設定となるツールのオプション設定について説明します。「メニュー」→「ツール」→「オプション」それぞれのタブについて以下で順に説明します。
VBEの使い方:VBE画面の全体説明|VBA入門(9月27日)
VBAをやるうえでVBE操作に慣れているかどうかで開発効率が大きく変わってきます。VBE(VisualBasicEditor)は、VBAの統合開発環境です。VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境がVBEです。
新規挿入可能なシート名の判定|ExcelマクロVBA技術解説(9月26日)
VBAでシートの存在確認およびシートとして使える文字列かどうかの判定は厳密に行おうとするとかなり大変になってきます。この件についてTwitterでやり取りがありそれらを踏まえた上でのVBAコードを参考として公開しておきます。その時のツイートでのやり取りはこちら シート名として使える文字列か判定 シート名の制限として
ShapesとDrawingObjectsの相違点と使い方|VBA技術解説(9月24日)
VBAで図(オートシェイプ等)を扱う時にいろいろ調べていくと図(オブジェクト)のコレクションが二つあることに気づきます。Shapesコレクション DrawingObjectsコレクション WEBのサンプルや書籍では多くはShapesが使われているはずですが時々DrawingObjectsを見かけることもあります。

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

1.最終行の取得(End,Rows.Count)|VBA入門

Excelワークシートにおける表の最終行の取得はVBAの必須技術になりますエクセルVBAにおける最終行取得の必要性 エクセルは表計算ソフトですつまり縦横の表を扱いますデータは横に項目があり縦に項目に対するデータが入っている事が一般的です。しかしそのデータ行数は決まった行数ではない事が普通です。
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
値の貼り付けと題しましたが、値だけではなく、「形式を選択して貼り付け」のいろいろな指定方法です。セルをコピーして、他のセルに「形式を選択して貼り付け」する場合のマクロVBAコードになります。セルの値や書式を別のセルコピーすることはマクロVBAでは定番かつ必須の技術になります。
3.RangeとCellsの使い方|ExcelマクロVBA入門
VBAではセルを指定する方法としてRangeとCellsがありますRangeもCellsもどちらもRangeオブジェクトでセルを指定するものです。どちらを使ったらよいのでしょうかどう使い分けたらよいのでしょうか実際のVBA記述ではRangeとCellsを使い分ける必要がありますRangeとCellsの使い方について解説をします。
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
Rangeの指定で、あらゆるセルおよびセル範囲は指定できるのですが、マクロで使う場合は、ちょっと使いづらい場合があります。"A1"や"B5"と言うような文字で指定するのでは何かと不便です、もっと、プログラムっぽい(笑)指定方法があります。
5.変数とデータ型(Dim)|ExcelマクロVBA入門
VBA入門者がまず最初につまずくのがこの変数でしょう変数とは数値や文字列など(すなわちデータ)を一時的に格納する入れ物 と良く説明されますがまずはこの考えで良いでしょう。この入れ物にはいろいろなタイプの入れ物があります。まあザルもあればダンボールもあればバケツもあればって事ですね。
6.繰り返し処理(For Next)|ExcelマクロVBA入門
VBAのForNextは同じ処理を繰り返し行うためのVBA構文です。VBAで繰り返し処理をする方法は何通りかありますが最も頻繁に使われていて最も簡単便利でありまず最初に覚えるべき繰り返し処理のVBA構文がForNextになります。ForNextは繰り返し処理をするためのステートメントで同じ処理を複数回繰り返したい場合に使います
7.マクロって何?VBAって何?|ExcelマクロVBA入門
エクセルのマクロって何でしょうか? ExcelのVBAって何でしょうか? 「マクロ」とは、エクセルの操作を自動化するものです。その自動化する機能が、「マクロ」と呼ばれています。マクロの中身は、プログラムです。
8.ひらがな⇔カタカナの変換|エクセル基本操作
「ひらがな」を「カタカナ」に、「カタカナ」を「ひらがな」に変換する方法の説明です。ひらがな→カタカナ変換 A1セル「にっぽんたろう」、これをB1セルに「ニッポンタロウ」と表示するには、B1セルに、=PHONETIC(A1) これで、「カタカナ」で表示されたと思います。
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
空白セルの判定は、VBAにおいては頻繁に発生しますが、正しく空白セルを判定する事は以外と難しいものです。そもそも「空白」とはどのような状態なのか… これが、はっきりしない為に何が正しいのかが判然としないことが問題を複雑にしています。以下、A1セルが空白かどうか判定する方法をいくつか紹介します。
10.セルに文字を入れるとは(Range,Value)|VBA入門
前回実行したマクロを、もう少し詳しく見てみましょう。どうして、これでセルに値がはいるのか、どうやってVBAを読んだらよいのか、少しだけ詳しく解説します。とにかくこれで、A1セルに、「おはよう!」と入る事がわかりました。
11.とにかく書いて見よう(Sub,End Sub)|VBA入門
それでは、とにかく、マクロを書いてみましょう。sub練習1 と入力し、Enterして下さい、このように、subがSubとなり、後ろに()が付きます。そして、下に、EndSubが追加されます。これがマクロです。
12.マクロはどこに書くの(VBEの起動)|VBA入門
さてではマクロはどこに書いたらよいのでしょうか。まずはマクロを書くための紙に相当する編集画面を出します。このマクロの編集画面をVisualBasicEditor略してVBEと呼びます。「VisualBasicEditor」の表示方法 Excel2007Excel2010以降 リボンの「開発」→「VisualBasic」Excel2003 「ツール」→「マ…
13.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
ワークブックを閉じる場合や保存する場合のVBAの説明です。閉じる時に保存するか保存しないかを指定できます、また、ブックを保存するにも、上書きなのか別ファイルにするのか等によってVBAの記述がそれぞれ違ってきます。ブックを閉じる ブックを閉じるには、WorkbookのCloseメソッドを使用します。
14.定数と型宣言文字(Const)|ExcelマクロVBA入門
前回は、変数を説明しましたが、変数があれば、当然のように定数もあります、つまり、変数は値が変わるもの、定数は値が変わらないものです。定数とは、数値や文字列の代わりに使用される、意味を持たせた名前のことです。VBAプログラムの中で同じ値を何度も使うことがあります。
15.Rangeでのセルの指定方法|ExcelマクロVBA入門
前回までに出てきたRangeの使い方はRange("A1") このように書きくことで1つのセルを指定する場合でした。複数のセル範囲を指定する場合矩形のセル範囲行全体列全体特殊なセル範囲 これらの指定方法を見ていきましょう。複数のセル(矩形のセル範囲) 複数のセル(矩形のセル範囲)を指定する場合のVBAの書き方です。
16.まずはマクロVBAを使う準備|ExcelマクロVBA入門
さっそくマクロを作りましょう。と、その前に、準備があります、上部のリボンに、「開発」タブを追加します、「開発」タブには、マクロを開発するにあたって必要なアイコンが並んでいます。※画像は、Excel2013になります。
17.セル範囲⇔配列(VBA高速化必須テクニック)|VBA入門
セル範囲をVariant型変数に入れる事で、配列を作成することができます。また、配列をセル範囲にまとめて出力する事も出来ます。これは、マクロVBAを高速処理したい時の必須テクニックになります、マクロの処理が遅い場合は、このテクニックが使えないか検討してください。
18.VBEのオプション設定(Option Explicit)|VBA入門
マクロを書き始める前に、ちょっと設定しておいた方が良いオプションがあります。いえ、絶対に設定しておかなければならないVBEのオプション設定です、必ず、最初に設定しておいてください。VBEの「ツール」→「オプション」以下の画面が出ます。
19.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数
検索されるキーワードで最も多いのが、MATCH関数 INDEX関数セル範囲から、指定された行と列が交差する位置にあるセルの参照を返します。書式INDEX(範囲,行番号[,列番号])範囲セル範囲を指定します。セル範囲が1行または1列である場合、行番号または列番号はそれぞれ省略することができます。
20.ブック・シートの指定|ExcelマクロVBA入門
ここまでのVBA入門ではアクティブブックのアクティブシートだけを扱ってきました。アクティブブックのアクティブシートとは一番手前に表示されているブックの選択しているシートで通常手作業で操作しているシートの事になります。手作業ではアクティブブックのアクティブシートしか扱えませんが(作業グループで複数のシートに同時に操作するのは別の話として) アクティブブック…

エクセル(Excel)・・・エクセルの基本操作・関数からマクロVBAまで

特にマクロVBAのコンテンツは初級者から上級者まで役に立つ内容にしています。
★エクセルの基礎を学習する方法★


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

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


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

Googleスプレッドシート、Google Apps Script・・・学びながら掲載

筆者自身が、あまり使ってきませんでしたので、
勉強しつつ、覚えたこと、試したことを記載していきます。
随所で、Excelとの対比を掲載していく予定です。

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

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


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

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

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




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


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



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