- 日本語変数・関数
- 読みやすいコードの書き方
- 入門・まとめ
- VBAの落とし穴
- ○○と△△の違い
- 汎用マクロ・便利ツール
- 汎用関数集
- 完成品マクロ
- エラー・デバッグ
- マクロの高速化
- VBEの使い方
- マクロでマクロを書く
- 仕様・考察
- プロシージャ分割
- クラスモジュール
- VBA問題集
- 100本ノック
- イベント・勉強会
- 雑談・その他
- 基本の書き方・サンプルコード集
日本語変数・関数
変数を日本語にすればプログラミングが上達する
英訳してはいけない変数名第1位「ワークシート」
英訳してはいけない変数名第2位「列見出し名」
英訳してはいけない変数名第3位「専門用語」
アプリケーションハンガリアン+日本語は最強の変数名だ
ユーザー辞書(IME単語登録)を使ってコードを書く
読みやすいコードの書き方
ExcelVBAコーディングガイドライン
定数を使って読みやすく変更に強いマクロを書く
マジックナンバーを減らす方法6選
VBAではカウンタ変数に「i」を使うな
Cells(R, ○)←○を入力するスピードを極めろ!
Elseの中にメインコードを書かない
If文は判定回数より読みやすさを最適化すべし
For文をたくさん分割しても処理は遅くならない
ベタ打ち数値はすべてマジックナンバー?
コロン:を使って複数行のコードを1行に書く-マルチステートメント-
複数のOR条件分岐を簡潔に書く方法5選
入門・まとめ
◇ Range・Cells
RangeとCellsの使い方 - セルの指定と使い分け
最終行を取得する方法7選 (UsedRange/End~)
最終列を取得する方法5選
セル範囲(Range)を取得する方法10選
◇ ワークシート
ワークシートを指定する方法7選
すべてのシートに同じ処理を行う - For~Nextステートメント
◇ 読みやすいコードの書き方
ExcelVBAコーディングガイドライン
定数を使って読みやすく変更に強いマクロを書く
マジックナンバーを減らす方法6選
◇ 汎用マクロ・便利ツール
個人用マクロブックの作り方と使い方3選
◇ VBEの使い方
変数の宣言を強制(Option Explicit)は必ず設定すべし
VBE(コードを書く画面)の文字/背景色を変更する
◇ FileSystemObject
FileSystemObjectとは-Dir関数群との違い
FileSystemObject入門-参照設定と変数宣言
FileSystemObject入門-ファイル一覧の取得
FileSystemObject入門-フォルダ取得と再帰処理
FileSystemObject入門 - FSOって何が便利なの?
◇ プロシージャ分割
プロシージャ(Sub/Function)の使い方入門
よく書くコードは汎用関数に - 作り方と使い方
◇ クラスモジュール
簡単で便利なクラスを作って学ぶクラスモジュール入門
ExcelVBAで学ぶオブジェクト指向
VBAの落とし穴
通常の実行ではエラーが出るのに1行ずつ実行すると上手くいく原因
DisplayAlertsを常時Falseにしてはいけない
OnErrorResumeNextはIfの分岐をTrueとみなす
OnError中にCallした関数内でエラーが起きると即呼出元に戻る
Findは遅くて非表示に弱くてユーザー操作の影響を受ける
Endによる最終行取得は非表示の行を検知できない
単セル.SpecialCellsはシート全体から実行とみなされる
For Each ○ In Range はセルごとのループとは限らない
セル範囲のコピー&ペーストに非表示のエリアは含まれる?
結合セル.Offset(1)は結合エリアの1つ下を指す
Range("A1") Is Range("A1") = False
シート名変更中はRangeのメソッドが失敗する
Protectメソッドを連続実行すると保護が解除される
掛け算を置換するとワイルドカード*と認識される
String型の数字を足し算すると文字列結合される
VBAのRound関数は四捨五入ではなく銀行丸め
Dirループ中は別関数であっても他のDirは使えない
読取専用ブック.Saveは警告なく別ブックに保存される
Workbooks.Open中にShiftを押すとマクロが停止する
Killステートメントに*が渡ると一括削除が実行される
Len関数は文字列長でなく変数の消費メモリを返すことがある
Val関数は全角(日本語入力)の「1」を0に変換する
Shapesにはドロップダウンリストの▼が含まれる
AutoFilerはどこから実行しても既存のフィルターが実行される
IsArray(Range)は.Valueを省略してもTrue
WorksheetFunctionに一次元配列を渡すと配列が欠損する
Transposeは65,537番以降を無告知で破棄する
CollectionはFor文でループすると遅くなる
Dictionary.Keys(i) .Items(i)と書いてはいけない
Dictionaryに渡すセル「.Value」は省略できない
Dictionary内の配列は要素の書き換えが出来ない
SendKeysを実行するとNumLockが切り替わる
Function名に句読点を使うとシート上で呼べなくなる
日本語の関数はクイックヒントの太字強調がズレる
○○と△△の違い
RangeとCellsの違い
RangeオブジェクトとRangeプロパティの違い
AutoFillとFillDownの違い
Application.GoToとRange.Selectの違い
Range.Selectと.Activateの違い
Worksheet.Selectと.Activateの違い
Replace関数とReplaceメソッドの違い
IsNumeric関数とISNUMBER関数の違い
VALUE関数とVal関数(とCDbl関数)の違い
Mod演算子(VBA)とMOD関数(Excel)の違い
DirとFSO.FileExistsの違い
DirとFSO.FolderExistsの違い
KillとFSO.DeleteFileの違い
RmDirとFSO.DeleteFolderの違い
MkDirとFSO.CreateFolderの違い
FileCopyとFSO.CopyFileの違い
NameとFSO.MoveFileの違い
NameとFSO.MoveFolderの違い
GetOpenFilenameとGetSaveAsFilenameの違い
GetOpenFilenameとFileDialogの違い
NumberFormatLocalとNumberFormatの違い
Format関数とTEXT関数の違い
Replace関数とSUBSTITUTE関数の違い
CStr関数とStr関数の違い
Asc(VBA関数)とASC(シート関数)の違い
Time関数とTimer関数の違い
DateDiff(VBA)とDATEDIF(Excel)の違い
WeekDay(VBA)とWEEKDAY(シート関数)の違い
CollectionとDictionaryの違い
Do While と Do Until の違い
Do While~Loop と Do~Loop While の違い
変数の型「Long」と「Integer」の違い
キャメルケースとスネークケースの違い
キャメルケースとパスカルケースの違い
キャメル記法とハンガリアン記法の違い
システムハンガリアンとアプリケーションハンガリアンの違い
TypeName関数とVarType関数の違い
Workbook_OpenとAuto_Openの違い
Workbook_BeforeCloseとAuto_Closeの違い
Function と Property Get の違い
ByVal(値渡し)とByRef(参照渡し)の違い
Property Let と Property Set の違い
ブレークポイントとStopステートメントの違い
個人用マクロブックと普通のブックの違い
Application.OnkeyとMacroOptionsの違い
汎用マクロ・便利ツール
個人用マクロブックの作り方と使い方3選
選択セルの値をGoogleで検索するマクロ
空の行を一括で削除するマクロ
オートフィルをショートカットに登録する
セルの結合・解除をショートカットに登録する
指定列のデータ部分だけを選択するマクロ
アクティブシートを新規ブックにコピーするマクロ
すべてのシートをA1セル選択状態にするマクロ
すべてのシートを一括で再表示するマクロ
ブック内の全シートを1シートに結合するマクロ
数式を値に固定して、ついでに#N/Aも消すマクロ
数式内の自シート!を消去するマクロ
新関数使用セルを対応バージョン別にリスト化するマクロ
アクティブブックの保存フォルダを開くマクロ
ブックを非表示にして保存して閉じるマクロ
フォルダ構成表から実際のフォルダを生成するマクロ
空のフォルダを一括削除するマクロ
新規ブックでのCtrl+Sを旧ダイアログに戻すマクロ
ファイルをバックアップするマクロ
選択セル値をブック名にブックを新規保存するマクロ
フォルダ内の全ブックを1シートに結合するマクロ
フォルダの構成をシートに書き出すマクロ
選択セル範囲のパスからフォルダを一括作成するマクロ
印刷映えする格子罫線を自動で引くマクロ
ウィンドウ枠固定と印刷タイトルを同時設定するマクロ
データ閲覧用の便利機能を1クリックで一括設定するマクロ
上下左右の印刷余白を0にするマクロ
選択範囲を1枚の用紙にクイック印刷するマクロ
着色を残して条件付き書式を削除するマクロ
選択セル範囲に丸数字を連番で入力するマクロ
選択エリアの0値を置換で消去するマクロ
セルに設定されたふりがなを一括削除するマクロ
すべての図形(オブジェクト)を選択するマクロ
特定のセル範囲内にある図形を処理/選択する
図形内テキストの不要な改行を制御するマクロ
ActiveXボタンをフォームボタンに置換するマクロ
一回だけ曲がるL字矢印コネクタを挿入するマクロ
グラフ軸目盛りの範囲・間隔を統一するマクロ
すべての図形内テキストをセルに出力するマクロ
抽出データを新規ブックにコピーするマクロ
ワークシートのオブジェクト名をマクロで設定する
列番号のEnum定数コードを自動生成するマクロ
列見出しをアルファベット⇔数字で切り替える
文字色・背景色を設定するマクロを書くマクロ
汎用関数モジュールを選択ブックにコピーするマクロ
Enumを定義したモジュールを自動生成するマクロ
F1ヘルプを無効化しF2など別機能を割り当てる
マクロのロック(赤帯)を一時的に解除するマクロ
汎用マクロ・便利ツール用の共通関数について
エラー・デバッグ
確認メッセージを非表示にする - DisplayAlerts
値・状態の変更を検知する - ウォッチウィンドウ
エラーメッセージを(ググるために)コピーする方法
マクロを一時停止する - ブレークポイント/Stop
配列を新規シートに出力して中身を確認する
Dictionaryを新規シートに出力して中身を確認する
テスト用コードの実行をフラグ定数で管理する
マクロの高速化
マクロの速度は追求すべきものだけを追求すべし
セル検索の速度比較 - Find/Match/Dictionary
ReplaceメソッドとReplace関数の速度比較
マクロの処理時間を計測する-Timer関数の使い方
Transpose関数と愚直な配列代入の速度比較
Dictionaryの格納件数による速度低下検証
Sub/Functionプロシージャを呼ぶのにかかる時間
Unionによる処理速度向上効果について
Instr関数とLike演算子の速度比較(文字列検索)
IfステートメントとIIf関数の速度比較
VLOOKUP関数を高速化する方法2選
VBEの使い方
変数の宣言を強制(Option Explicit)は必ず設定すべし
VBE(コードを書く画面)の文字/背景色を変更する
Cells(○, ○). の入力候補を出す小技
モジュール名の変更方法とおすすめの命名規則
マクロにショートカットキーを設定する
マクロに設定したショートカットキーを一括解除する
イミディエイトウィンドウをクリアする方法
邪魔な通知「コンパイルエラー:修正候補」を切る
Scripting Runtime の参照設定方法
文字列比較の設定を変更する - Option Compare
OnKeyメソッドでショートカットキーを設定する
仕様・考察
4種のAIによるExcelVBAコーディング性能比較
テーブルと通常フィルターが混在するシートにおけるAutoFilterの挙動
コーディング規約を活用した生成AIコーディング
プロシージャのCall元/先でのOnError挙動まとめ
同じコードなのにエラーが変わるRangeの不思議
複数領域を持つRangeのプロパティ挙動について
Worksheets("○○"). の入力選択肢を出す方法
Dir関数でサブフォルダの一覧を取得する方法
深い階層のフォルダ作成を再帰関数で行う
WithとNameステートメントは併用できない
Dimを省略していきなりReDimを書いてもいい?
0,1始まりでない配列(Array)をセルに出力する
空の配列Array()の仕様と活用方法
For Each文の中身を途中でいじるとどうなるか
ByRefの引数にただの値や定数を渡したときの動き
変数宣言(Dim)とNewを1行で済ませてよいか
マージソートのサンプルコード
プロシージャ分割
プロシージャ(Sub/Function)の使い方入門
よく書くコードは汎用関数に - 作り方と使い方
Sub/Functionの引数を省略可能にする-Optional
引数を好きな個数渡せる関数を作る-ParamArray
ParamArrayを別関数のParamArrayに渡す方法
処理前後のDisplayAlertsのONOFFを関数化する
クラスモジュール
簡単で便利なクラスを作って学ぶクラスモジュール入門
ExcelVBAで学ぶオブジェクト指向
クラスのメンバーに配列(Array)を定義する
色(RGB値)の操作を補助するクラスを作る
マクロの実行時間計測(Timer)をクラス化する
クラスモジュールのエラーをクラス内で止める設定
コンストラクタ(Initialize)に引数を渡せない問題
VBAにおいて「隠蔽」ってどのくらい重要?
VBA問題集
ExcelVBA問題集 まとめページ
VBA問題#1「領収書PDFを出力」
VBA問題#1「領収書PDFを出力」マクロ①解答
VBA問題#1「領収書PDFを出力」マクロ②解答
VBA問題#1「領収書PDFを出力」完成版解答
VBA問題#2「注文書をデータ取込」
VBA問題#2「注文書をデータ取込」マクロ①解答
VBA問題#2「注文書をデータ取込」マクロ②解答
VBA問題#2「注文書をデータ取込」完成版解答
VBA問題#3「月次請求書を作成」
VBA問題#3「月次請求書を作成」マクロ①解答
VBA問題#3「月次請求書を作成」マクロ②解答
VBA問題#3「月次請求書を作成」完成版解答
VBA課題001「スケジュール着色」回答コード
VBA課題002「最も近い色を見つけよう!」回答コード
VBA課題003「領収書PDFを出力」回答コード
VBA課題004「カレンダー入力フォームを作ってみよう」回答コード
VBA課題005「プラモの部品構成表を作成する」回答コード
VBA課題006「注文書をデータ取込」回答コード
VBA課題007「月次請求書を作成」回答コード
VBA課題009「人事データからクロス表を作成」マクロ1回答コード
VBA課題009「人事データからクロス表を作成」マクロ2回答コード
ワークシート関数を自作する【SUM編】
ワークシート関数を自作する【COUNT編】
ワークシート関数を自作する【COUNTA編】
Excelで作るルーレット - ExcelFun記念イベント
100本ノック
ExcelVBA100本ノック解答用汎用関数集
VBAノック50本目:トリボナッチ数列
VBAノック51本目:シート一覧と印刷ページ数
VBAノック52本目:複数シートの一括印刷
VBAノック53本目:テーブルの扱いと年齢計算
VBAノック54本目:シートのChangeイベント
VBAノック55本目:他ブックのマクロを起動
VBAノック56本目:数式内の自身のシート名を消す
VBAノック57本目:ファイルの更新日時
VBAノック58本目:番号リストを簡潔にした文字列で返す
VBAノック59本目:12ヶ月分のシートを四半期で分割
VBAノック60本目:「株式会社」の表記ゆれ置換
VBAノック61本目:「ふりがな」の取得と設定
VBAノック62本目:独自のZLOOKUP関数を作成
VBAノック63本目:複数シートの連結
VBAノック64本目:リンクされた図(カメラ機能)
VBAノック65本目:固定長テキスト出力
VBAノック66本目:全サブフォルダからファイルを探す
VBAノック67本目:ComboBoxとListBox
VBAノック68本目:全テキストボックスの転記
VBAノック69本目:ダブルクリックでセル結合を解除
VBAノック70本目:ステータスバーに1秒ごとに時刻が表示
VBAノック71本目:パワーポイントへグラフを貼り付け
VBAノック72本目:ITをDXに変換(文字列操作)
VBAノック73本目:新規ブックにボタン作成しマクロ登録
VBAノック74本目:1シート複数表をDB形式に変換
VBAノック75本目:ログインフォームの作成
VBAノック76本目:ボタンの表示名の位置へ移動
VBAノック77本目:シート挿入イベント
VBAノック78本目:グラフのデータ範囲拡張
VBAノック79本目:Wordにセル範囲を図として挿入
VBAノック80本目:読み取り専用で保存できないブックにする
VBAノック81本目:全フィルターの絞り込み解除
VBAノック82本目:ブックのドキュメントプロパティを取得
VBAノック83本目:請求書を作成してPDF出力
VBAノック84本目:ブックの自動バックアップ
VBAノック85本目:請求日から入金予定日を算出
VBAノック86本目:全シートの総当たり表を作成
VBAノック87本目:数式のシート間の依存関係
VBAノック88本目:クロスABC分析作成
VBAノック89本目:2つのフォルダの統合
VBAノック90本目:セルに重なっている画像の削除
VBAノック91本目:時間計算(残業時間の月間合計)
VBAノック92本目:セルの色を16進数で返す関数
VBAノック93本目:複数ブックを連結して再分割
VBAノック94本目:表範囲からHTMLのtableタグを作成
VBAノック95本目:図形のテキストを検索するフォーム作成
VBAノック96本目:Accessデータを取得(マスタ結合&抽出)
VBAノック97本目:Accessデータを取得(グループ集計)
VBAノック98本目:席替えルールが守られているか確認
VBAノック99本目:行列前後左右が違うように自動席替え
VBAノック100本目:WEBから100本ノックのリストを取得
イベント・勉強会
和風スパゲティ勉強会 資料&配信アーカイブまとめ
スパとふゆの0からはじめるExcelマクロ まとめ
2/26(金)20:00~ VBA勉強会「初心者向けオートフィルタの使い方」
12/11(土)20:00~ VBA勉強会「Sub/Functionの使い方入門!」
1/29(土)20:00~ VBA勉強会「ライトニングトーク」
4/2(土)20:00~ VBA勉強会「脱初心者!メンテナンスしやすいマクロの作り方」
2/11(土)20:00~ VBA勉強会「日本語変数のすすめ+母国語で作る自作関数入門」
3/18(土)20:00~ VBA勉強会「配列入門!Array&Collection&Dictionary欲張りセット」
12/28(土)21:00~ VBA勉強会「第1回 スパゲティコード添削会」
1/28(火)21:00~ VBA勉強会「第2回 スパゲティコード添削会」
2/8(土)21:00~ 第1回 和風スパゲティ勉強会「VBEの使い方大全」
「VBEの使い方大全」配布資料&配信アーカイブ
2/15(土)21:00~ VBA勉強会「第3回 スパゲティコード添削会」
3/22(土)21:00~ 新社会人のためのExcelマクロ超入門講座
「新社会人のためのExcelマクロ超入門講座」配布資料&配信アーカイブ
4/12(土)21:00~ 第2回 和風スパゲティ勉強会「列挙型変数Enumの使い方」
「列挙型変数Enumの使い方」配布資料&配信アーカイブ
4/26(土)21:00~ 第5回 課題チャレンジ共有会
5/3(土)21:00~ VBA勉強会「第4回 スパゲティコード添削会」
5/10(土)22:00~ 新社会人のためのExcelマクロ超入門講座(ショートver)
「新社会人のためのExcelマクロ超入門講座(ショートVer)」配布資料&配信アーカイブ
6/3(火)21:00~ VBA勉強会「第5回 スパゲティコード添削会」
6/28(土)21:00~ 第3回 和風スパゲティ勉強会「こんなのあるなら先に言ってよ機能大全」
「こんなのあるなら先に言ってよ機能大全」配布資料&配信アーカイブ
毎週金曜22:00~「スパとふゆの0からはじめるExcelマクロ」
「配列(Array)入門」配布資料&配信アーカイブ
8/25(月)21:00~ 第4回 和風スパゲティ勉強会「配列(Array)入門」
8/28(木)21:00~ 第5回 和風スパゲティ勉強会「Collction&Dictionary」
「Collection&Dictionary」配布資料&配信アーカイブ
LT会「Excelグラフ勉強会」配布資料&配信アーカイブ
LT会「便利マクロ勉強会」配布資料&配信アーカイブ
9/30(木)21:00~ 第6回 和風スパゲティ勉強会「VBAの落とし穴大全」
「VBAの落とし穴大全」配布資料&配信アーカイブ
LT会「自作ライブラリ勉強会」配布資料&配信アーカイブ
10/29(水)21:00~ 第7回 和風スパゲティ勉強会「Rangeオブジェクト再入門」
「Rangeオブジェクト再入門」配布資料&配信アーカイブ
LT会「VBA開発者のための便利マクロ勉強会」配布資料&配信アーカイブ
11/26(水)21:00~ 第8回 和風スパゲティ勉強会「Sub・Function超入門」
「Sub・Function超入門」配布資料&配信アーカイブ
12/8(月)21:00~ VBA勉強会「第6回 スパゲティコード添削会」
12/23(火)21:00~ 第9回 和風スパゲティ勉強会「プロシージャ分割入門」
「プロシージャ分割入門」配布資料&配信アーカイブ
LT会「みんなの便利なAI活用術」配布資料&配信アーカイブ
LT会「フリーソフト紹介」配信アーカイブ
2/10(火)21:00~ 第10回 和風スパゲティ勉強会「クラスモジュール超入門」
「クラスモジュール超入門」配布資料&配信アーカイブ
LT会「ガジェット紹介」配布資料&配信アーカイブ
3/1(日)21:00~【AI×VBA】和風スパゲティAIを作ってみよう!
「和風スパゲティAIを作ってみよう!」配布資料&配信アーカイブ
LT会「やらかしちゃった事例紹介」配信アーカイブ
4/12(日)21:00~ 第11回 和風スパゲティ勉強会「FileSystemObject入門」
雑談・その他
人に何か伝えるなら母国語で
3キーフットスイッチに割り当てると便利なショートカットトリオ7選
明けましておめでとうございます。
関数(プロシージャ)分割は思ってるより簡単です
変数名に接頭する「my」の意味
プログラマ向けピアノ楽譜の読み方
VBAでインクリメント演算子(++i)を使う方法
50日連続投稿達成!良かったこと悪かったこと
ブログタイトル「和風スパゲティ」の由来
明けましておめでとうございます
姉妹サイト「和風スパゲティのソース」を開設しました
漢字=表意文字って素晴らしい
姉妹サイト閉鎖のご報告
ExcelVBAシステム開発での副業記録
明けましておめでとうございます
サイトマップとカテゴリを整理しました
2025年 あけましておめでとうございます
セル結合&Excel方眼紙は悪なのか
Windows11 おすすめ設定一覧
ExcelVBAと生成AIについて思うこと
プロシージャ分割はいつ教えるのが最適か
2026年 あけましておめでとうございます
今年の恵方を調べる関数
Excel&VBAのコミュニティ「Excel-Fun.xls*」を開設しました!
Excel-Fun.xls*参加者1,000名を突破しました!
「Excel-Fun.xls*」が創設1周年を迎えました。
Excel-Fun.xls*参加者2,000名を突破しました!
Youtubeチャンネル登録者1,000名を突破しました!
基本の書き方・サンプルコード集
Range・Cells
◇ 入門・まとめ
RangeとCellsの使い方 - セルの指定と使い分け
最終行を取得する方法7選 (UsedRange/End~)
最終列を取得する方法5選
セル範囲(Range)を取得する方法10選
◇ 基本の書き方
Range(Cells,Cells)の親シートを指定する方法
セル範囲の値だけコピーする-Range.Value(Copy)
セル範囲の数式をコピーする-Range.Formula
セルに数式を入力する - Range.Formula
スピル数式をVBAから入力する - Formula2
セル・セル範囲・行・列を削除する - Delete
セル・セル範囲・行・列を挿入する - Insert
行・列全体を取得する - Rows/Columns/Entire
セル範囲を行数・列数指定で取得する - Resize
セルやセル範囲を行数・列数分移動する - Offset
複数のセル範囲をひとつのRangeにする - Union
オートフィルで連続データを作成する - AutoFill
セル範囲を先頭セルの値・式で埋める - FillDown
行・列の表示/非表示を切り替える - Hidden
セルのロックを設定/判定する-Range.Locked
セル内文字列を文字ごとに操作する - Characters
セルを結合・解除する - Merge/UnMerge
セルが結合されているか判定する - MergeCells
複数領域をセル範囲ごとに取得する - Areas
表の範囲を推定して取得する - CurrentRegion
セル範囲.Cells(R, C)の仕様と使い方
Range、Cellsの「.Value」は省略してよいか
固定のセル(Range)を定数(Const)で定義する
◇ サンプルコード
Ctrl+Shift+↓のセル範囲取得をVBAで行う方法
セル範囲を縮小する/見出し行を除外する
セル範囲を元の大きさを基準に拡大縮小する
Rowsプロパティで複数行を指定する
第1行の書式を最終行までコピーする - Rows
条件を満たす行を削除する - Unionメソッド
条件を満たす列を削除する - Delete/Union
特定の条件を満たす行を高速削除する
指定行より下を最終行まですべて削除する
複数のセル範囲が選択されているか判定する
セルが特定のセル範囲内にあるか判定する-Intersect
指定のセル範囲(Range)の最終行を取得する
CurrentRegionの最終行を取得する
セル範囲(Range)が行全体/列全体か判定する
セル範囲の先頭(左上)のセルを取得する
セル範囲の最終(右下)セルを取得する
CurrentRegionに見出し行推定機能を追加する
指定列のデータ部分を取得する-Resize/Intersect
ロックされていないセルをすべて選択/クリアする
結合セルの値を取得する - MargeArea/Value
Nothingを受け取るUnionメソッドを作る
セル範囲から不要な範囲をカットする - Intersect
ワークシート
◇ 入門・まとめ
ワークシートを指定する方法7選
すべてのシートに同じ処理を行う - For~Nextステートメント
◇ 基本の書き方
シート名を取得・変更する - Worksheet.Name
シートをコピーする - Worksheet.Copy
シートを移動する - Worksheet.Move
シートを削除する - Worksheet.Delete
シートを保護する - Worksheet.Protect
シートの表示/非表示を切り替える - Visible
ワークシートをオブジェクト名で指定する
◇ サンプルコード
シートを新規ブックにコピー/移動する
シートを別のブック(の末尾)にコピー/移動する
複数のシートをまとめてコピー/移動する
アクティブシートを変えずにシートを追加・コピーする
非表示のシートをコピー・移動する
新規シートを新しいブックに追加する
ワークシートが存在するかチェックする関数
シート名をセル値から取得してWorksheetを指定する方法
ブック内の最終(右端)シートを取得する
指定のシートが何番目のシートか調べる
隣のシート(前のシートや次のシート)を取得する
偶数シートなど飛び飛びのシートをループする
表示されているシートのみをループする - Visible
文字列からシート名に使えない文字を消去する
重複しないよう連番付きでシート名を設定する
シートの保護設定を調べる/同じ設定でシートを保護する
マクロでのみ編集可能なシート保護を設定する
すべてのシートの保護を一括で設定/解除する
WorksheetのCopyメソッドを改良した関数を作る
シート関数・VBA関数
◇ 基本の書き方
ワークシート関数を使用する-WorksheetFunction
If~Else~EndIfを1行で書く - IIf関数
値が偶数/奇数か調べる - IsEven/IsOdd/Mod
セルがエラーかどうか調べる - IsError関数
セルのエラー値の種類を調べる - CVErr関数
10進数と16進数を相互変換する - &H/Hex関数
値を整数値(Integer型)に変換する - CInt関数
値を整数値(Long型)に変換する - CLng関数
値を単精度浮動小数(Single型)に変換する - CSng関数
値を倍精度浮動小数(Double型)に変換する - CDbl関数
値を通貨型(Currency型)に変換する - CCur関数
VBAで十進数(Decimal)型を扱う - CDec関数
値をTrue/False(Bool型)に変換する - CBool関数
値を0~255の正整数に変換する - CByte関数
値を日付型(Date型)に変換する - CDate関数
値を文字列(String型)に変換する - CStr関数
値をVariant型に変換する - CVar関数
数値を文字列に変換する - Str関数
◇ サンプルコード
WorksheetFunctionの呼び出しを短縮する方法
"100円"も数字として合計できるSUM関数を作る
Excelがスピルに対応したバージョンか調べる
ユーザー定義Functionにスピル機能を持たせる
ユーザー定義関数が呼ばれたセルを取得する - Caller
ブック・ファイル
◇ 基本の書き方
ブックを上書き保存する - Workbook.Save
ブックを閉じる - Workbook.Close
ブックが保存済みか調べる - Savedプロパティ
ブックを保護する - Workbook.Protect
ファイルをコピーする - FileCopyステートメント
ファイルを移動・名称変更する-Nameステートメント
ファイルを削除する - Killステートメント
フォルダを作成する - MkDirステートメント
空のフォルダを削除する - RmDirステートメント
フォルダを移動・名称変更する-Nameステートメント
最近使ったアイテムを追加/削除する - RecentFilesプロパティ
ブックを読み取り専用にする - ChangeFileAccess
ブックの読み取り専用を解除する - ChangeFileAccess
ブックが読み取り専用か判定する - ReadOnly
ダイアログボックスでファイルを指定・選択する
名前を付けて保存ダイアログを開く-GetSaveAsFilename
◇ サンプルコード
ブックを現在開いているかチェックする関数
ブックを上書き保存して閉じる-Workbook.Close
ブックを保存せずに閉じる - Workbook.Close
読取専用の推奨を無視して書込権限でブックを開く
破損したブックを修復して開く(CorruptLoad)
ブックを読み取り専用で開く - ReadOnly
開いているファイルをコピーする - FSO.CopyFile
ダイアログボックスでファイルを複数指定する
指定のフォルダをエクスプローラーで開く
ダイアログボックスでフォルダを指定・選択する
フォルダが存在するか調べる-Dir/FSO.FolderExists
フォルダが空か判定する
深い階層まで一気にフォルダを作成する
重複しないよう連番付きでフォルダを作成する
セルの値を元にフォルダを一括で作成する
フォルダを別のドライブに移動する
フォルダを統合する(同名のフォルダに移動する)
ファイルを部分一致(ワイルドカード)で検索する
フォルダを部分一致(ワイルドカード)で検索する
パスからフォルダ名やファイル名を取得する
ファイルの拡張子を取得する - GetExtensionName
既存ファイルを上書きしてファイルを移動する
重複しないようファイル名に連番を付与する関数
ブックを開いたまま移動/名前を変更する
デスクトップのフォルダパスを取得する
フォルダ内のすべてのファイルを削除する - Kill
フォルダを空にする(ファイル・フォルダを全削除)
ZIPファイルをマクロで解凍する
フォルダ内のファイル一覧を取得する汎用関数
FileSystemObject
◇ 入門・まとめ
FileSystemObjectとは-Dir関数群との違い
FileSystemObject入門-参照設定と変数宣言
FileSystemObject入門-ファイル一覧の取得
FileSystemObject入門-フォルダ取得と再帰処理
FileSystemObject入門 - FSOって何が便利なの?
◇ 基本の書き方
Fileオブジェクト(FileSystemObject)
Folderオブジェクト(FileSystemObject)
FileSystemObject.FileExistsメソッド
FileSystemObject.CopyFileメソッド
FileSystemObject.MoveFileメソッド
FileSystemObject.DeleteFileメソッド
FileSystemObject.FolderExistsメソッド
FileSystemObject.CreateFolderメソッド
フォルダをコピーする - FSO.CopyFolder
フォルダを移動する - FSO.MoveFolder
フォルダを削除する - FSO.DeleteFolder
◇ サンプルコード
FileSystemObjectの呼び出しを短縮する方法
書式設定・表示設定
◇ 基本の書き方
セルの背景色を設定する - Interior.Color
セルに罫線を引く - Range.Borders
セルの文字配置(水平/垂直など)の書式を設定する
セルの表示形式を設定する-NumberFormatLocal
行高・列幅を設定する - RowHeight/ColumnWidth
改ページを挿入・解除・位置取得する-PageBreak
セル内の文字列を一部だけ着色する - Characters
色をRGB値で設定する - RGB関数
改ページプレビュー・ページレイアウトを設定する
ワークシートをスクロールする - ScrollRow/Column
◇ サンプルコード
セル内の特定文字列だけを着色する - Characters
Colorプロパティの値からRGBの値を求める
セルの文字色・背景色を列挙型Enumで記憶する
RGB値とHTMLカラーコードを相互変換する
データの区切りごとに改ページを挿入する
1行おきに背景色を設定して縞模様にする
文字列
◇ 基本の書き方
文字列を部分一致で比較する - Like演算子
文字列を区切り文字付きで結合する - Join関数
アルファベットを大文字/小文字に変換する - UCase/LCase関数
文字列前後の空白を削除する-Trim/LTrim/RTrim関数
文字コードを取得する - Asc/AscW/AscB関数
文字コードから文字を取得する - Chr/ChrW/ChrB関数
同じ文字を繰り返した文字列を作る - String関数
指定した数のスペースをつなげる - Space関数
文字列の前方部分から数字を取り出す - Val関数
文字列の順序を比較する - StrComp関数
文字列の文字数を数える - Len/LenB関数
全半角/大小文字/カナを変換する - StrConv関数
文字列を改行する/改行を消す/別文字に置換する
文字列を指定の表示形式に変換する-Format関数
文字列を置換する - Replace関数
文字列を区切り文字で分割する - Split関数
◇ サンプルコード
文字列を含むか判定する - Instr関数/Like演算子
文字列内の指定文字の登場回数をカウントする
指定の文字列より左側(前方)を取り出す -Left+Instr関数
指定の文字列より右側(後方)を取り出す-Right/Mid+Instr関数
ある文字列からある文字列までを取り出す - Mid+Instr関数
指定の文字列より右側(後方)を削除する
指定の文字列より左側(前方)を削除する
文字列から文字列までを置換する/消す
文字列の右側(末尾)をn文字削除する
文字列の左側(先頭)をn文字削除する
カッコ内の文字列を取得する関数 - Mid,Instr関数
Mid関数を位置で指定できるようにカスタマイズ
文字列の中にある数字を抽出する関数
数値を丸数字①②③~に変換する
アルファベット(ABC)⇔数字(123)を変換する関数
数値の桁数を取得する/小数点第何位か調べる
環境依存文字をセルに出力する - ChrW関数
数値の桁数を揃える(0埋めする) - Format関数
文字の種類(数字/アルファベット/カナ)を判定する
半角英数はそのままに半角カナを全角カナに変換する
ひらがな↔カタカナの相互変換 - StrConv関数
文字列の全角/半角を切り替える - StrConv関数
複数のセル値を区切り付き文字列に結合する
文字列内の指定文字列を削除する - Replace関数
特定の文字列を含むセルを検索する - Instr関数
セル値や変数が文字列(String)か判定する
日付・時刻
◇ 基本の書き方
文字列を日付(Date型)に変換する-DateValue関数
文字列を時刻(Date型)に変換する-TimeValue関数
現在の日時を取得する - Date/Time/Now関数
第何日目/第何週目か調べる - DatePart
◇ サンプルコード
生年月日から年齢を計算する - DateDif関数
日付から曜日を取得する - Format/Weekday
日付(Date)とyyyymmdd(Long)を相互変換する
日付から月末を求める - EOMONTH/DateSerial
日付から「年度」を求める関数
「年度」を使って日付を求めるDateSerial関数
4月から3月を連番に変換してコードを整理する
年度年齢(年度末時点での年齢)を取得する
図形(Shape)
◇ 基本の書き方
テキストを図形からはみ出して表示する
図形(Shape)の種類を調べる - Typeプロパティ
図形の前面/背面を設定・変更する - ZOrder
マクロの実行元(実行ボタン)を取得する - Caller
◇ サンプルコード
すべての図形(オブジェクト)を削除する
重なった図形を最前面のもの以外削除する
オブジェクトがActiveXコントロールか判定する
押されたボタンごとに処理を分岐する - Caller
WEB読込・操作
◇ サンプルコード
WEB上の表をExcelに読み込む - QueryTable
オートフィルター
◇ 基本の書き方
フィルターで抽出中か判定する - FilterMode/On
◇ サンプルコード
オートフィルターでデータを抽出する
オートフィルターをクリアして全て表示する
オートフィルターで抽出中の件数をカウントする
オートフィルターで数値の条件・区間を抽出する
オートフィルターの最終行を取得する
フィルター抽出中のデータをコピーする
オートフィルターのデータ部分を取得する
シート上の全フィルターをクリアする - ShowAllData
配列(Array)
◇ 基本の書き方
配列の要素数を取得する - Ubound・Lbound関数
変数が配列(Array)かどうか判定する - IsArray関数
配列の中身を初期化する - Erase/ReDim
配列の開始番号を設定する - Option Base 1
配列が空(初期状態・要素数が0)であるか判定する
ParamArrayが省略されたか判定する - IsMissing
◇ サンプルコード
セル範囲や複数セルから1次元配列を生成する
配列(Array)をセルに一括出力する
配列(Array)の次元数を取得する
ジャグ配列(配列の配列)を二次元配列に変換する
動的配列が初期化(ReDim)されているか判定する
Collection
◇ 基本の書き方
Collectionをセルに出力/一括出力する
◇ サンプルコード
Collectionを配列(Array)に変換する
Collectionに要素が存在するかチェックする
Collectionで重複なしリストを作成する
Dictionary
◇ 基本の書き方
Dictionaryの省略記法一覧(Item/Keys/Add)
Dictionaryの要素(Key/Item)をセルに出力する
DictionaryをKeyだけでCollectionのように使う
◇ サンプルコード
Dictionaryで重複のないリストを作る
Dictionaryで要素ごとのデータ数をカウントする
Dictionaryで列番号を管理する
Dictionaryを用いたデータ集計 - 列ごとにDictionary作成版
Dictionaryを用いたデータ集計 - Itemに配列版
Dictionaryを用いたデータ集計 - Itemにクラス版
Dictionaryを用いたデータ集計 - ItemにもDictionary版
DictionaryのItemからKeyを取得する
変数・定数
◇ 入門・まとめ
変数のデータ型一覧と宣言方法まとめ
◇ 基本の書き方
定数(変更しない変数)を宣言する - Constステートメント
数値定数をまとめて管理する - 列挙型変数Enum
Setとは - 代入にSetが必要なオブジェクト変数
変数がオブジェクトか判定する - IsObject関数
変数や値のデータ型を調べる - TypeName関数
値のデータ型を調べる - VarType関数
◇ サンプルコード
オブジェクトに特定のプロパティが存在するか調べる
イベント処理
◇ 基本の書き方
シートがアクティブになった時にマクロを自動実行する - Worksheet_Activate
ブックを開いたときにマクロを自動実行する - Workbook_Open
ブックを閉じるときにマクロを自動実行する - BeforeClose
ブックの保存時にマクロを自動実行する - BeforeSave
◇ サンプルコード
ダブルクリックでセルの値を切り替えるマクロ
セルをダブルクリックした時にマクロを実行する - BeforeDoubleClick
セルの値が変更された際にマクロを自動実行する - Change
選択セルの変更時にマクロを自動実行する - SelectionChange
シートがアクティブでなくなった際にマクロを自動実行する - Deactivate
シートが削除される直前にマクロを実行する - BeforeDelete