- 日本語変数・関数
- 読みやすいコードの書き方
- 基本構文
- サンプルコード
- 汎用関数集
- 汎用マクロ・便利ツール
- VBAの落とし穴
- 完成品マクロ
- ○○と△△の違い
- マクロの高速化
- プロシージャ分割
- クラスモジュール
- VBEの使い方
- 仕様・考察
- 雑談・その他
日本語変数・関数
変数を日本語にすればプログラミングが上達する
英訳してはいけない変数名第1位「ワークシート」
英訳してはいけない変数名第2位「列見出し名」
英訳してはいけない変数名第3位「専門用語」
アプリケーションハンガリアン+日本語は最強の変数名だ
ユーザー辞書(IME単語登録)を使ってコードを書く
読みやすいコードの書き方
定数を使って読みやすく変更に強いマクロを書く
よく書くコードは汎用関数に - 作り方と使い方
VBAではカウンタ変数に「i」を使うな
If文は判定回数より読みやすさを最適化すべし
Elseの中にメインコードを書かない
Cells(R, ○)←○を入力するスピードを極めろ!
マジックナンバーを減らす方法6選
ベタ打ち数値はすべてマジックナンバー?
コロン:を使って複数行のコードを1行に書く-マルチステートメント-
基本構文
定数(Const)の使い方
列挙型変数(Enum)の使い方
最終行を取得する方法7選
最終列を取得する
RangeとCellsの使い方 - セルの指定と使い分け
セル範囲(Range)を取得する方法10選
セル範囲の値だけをコピーする
セル範囲にシート関数をコピーする
固定のセル(Range)を定数(Const)で定義する
セルのロックを設定/解除/判定する - Lockedプロパティ
すべてのシートに同じ処理を行う - For~Nextステートメント
ワークシートを指定する方法7選
シート名を取得・変更する - Nameプロパティ
シートをコピーする - Copyメソッドの使い方
シートを移動する - Moveメソッドの使い方
シートを削除する - Deleteメソッドの使い方
シートを保護する - Protect/Unprotectメソッド
ブックを上書き保存する - Saveメソッド
ブックを閉じる - Closeメソッドの使い方
ブックを保護する - Protect/Unprotectメソッド
フォルダを作成する - MkDirステートメント
FileSystemObject入門 - FSOって何が便利なの?
FileSystemObject.FileExistsメソッド
FileSystemObject.FolderExistsメソッド
FileSystemObject.CreateFolderメソッド
シート関数をVBA上で計算するWorksheetFunctionオブジェクトの使い方
セルの数式をVBAで入力する - Formulaプロパティの使い方
フォルダを部分一致(ワイルドカード)で検索する
文字列を区切り文字付きで結合する - Join関数
IIf関数の使い方
関数の引数を省略可能にする - Optionalキーワード
引数を好きな個数渡せる関数を作る-ParamArrayキーワード-
サンプルコード
シートを新規ブックにコピー/移動する
シートを別のブック(の末尾)にコピー/移動する
複数のシートをまとめてコピー/移動する
新規シートを新しいブックに追加する
アクティブシートを変えずにシートを追加・コピーする
指定のシートが何番目のシートか調べる
隣のシート(前のシートや次のシート)を取得する
偶数シートなど飛び飛びのシートをループする
シート名をセル値から取得してWorksheetを指定する方法
文字列からシート名に使えない文字を消去する
ブック内の最終(右端)シートを取得する
重複しないよう連番付きでシート名を設定する
ワークシートが存在するかチェックする関数
シートの保護設定を調べる/同じ設定でシートを保護する
マクロでのみ編集可能なシート保護を設定する
ブックを現在開いているかチェックする関数
ブックを上書き保存して閉じる - Closeメソッド
指定のフォルダをエクスプローラーで開く
ブックを保存せずに閉じる - Closeメソッド
ダイアログボックスでフォルダを指定・選択する
フォルダが存在するか調べる-Dir/FSO.FolderExists
深い階層まで一気にフォルダを作成する
重複しないよう連番付きでフォルダを作成する
セルの値を元にフォルダを一括で作成する
ファイルを部分一致(ワイルドカード)で検索する
フォルダを部分一致(ワイルドカード)で検索する
セル範囲を縮小する/見出し行を除外する
セル範囲を元の大きさを基準に拡大縮小する
Ctrl+Shift+↓のセル範囲取得をVBAで行う方法
指定のセル範囲(Range)の最終行を取得する
CurrentRegionの最終行を取得する
ロックされていないセルをすべて選択/クリアする
Range(Cells,Cells)で別シートを指定する方法
複数のセル値を区切り付き文字列に結合する
セル範囲や複数セルから1次元配列を生成する
Colorプロパティの値からRGBの値を求める
セルの文字色・背景色を列挙型Enumで記憶する
文字色・背景色を設定するマクロを書くマクロ
文字列の中にある数字を抽出する関数
数値を丸数字①②③~に変換する
文字列の右側(末尾)をn文字削除する
文字列の左側(先頭)をn文字削除する
指定の文字列より左側を取り出す(右側を消す)
指定の文字列より右側を取り出す(左側を消す)
指定の文字列より右側(後方)を削除する
指定の文字列より左側(前方)を削除する
Mid関数を位置で指定できるようにカスタマイズする
ある文字列からある文字列までを取り出す
文字列から文字列までを置換する/消す
カッコ内の文字列を取得する関数 - Mid,Instr関数
パスからフォルダ名やファイル名を取得する
文字列内の指定文字の登場回数をカウントする
アルファベット(ABC)⇔数字(123)を変換する関数
日付から「年度」を求める関数
「年度」を使って日付を求めるDateSerial関数
4月から3月を連番に変換してコードを整理する
オートフィルターでデータを抽出する
オートフィルターをクリアして全て表示する
オートフィルターで抽出中の件数をカウントする
オートフィルターで数値の条件・区間を抽出する
オートフィルターの最終行を取得する
テーブル(ListObject)の最終行を取得する
すべての図形(オブジェクト)を削除する
Dictionaryで重複のないリストを作る
Dictionaryで要素ごとのデータ数をカウントする
ParamArrayを別関数のParamArrayに渡す方法
FileSystemObjectの呼び出しを短縮する方法
WorksheetFunctionの呼び出しを短縮する方法
マージソートのサンプルコード
汎用マクロ・便利ツール
個人用マクロブックの作り方と使い方3選
印刷映えする格子罫線を自動で引くマクロ
ウィンドウ枠固定と印刷タイトルを同時設定するマクロ
選択範囲を1枚の用紙にクイック印刷するマクロ
上下左右の印刷余白を0にするマクロ
選択セルの値をGoogleで検索するマクロ
選択セル範囲に丸数字を連番で入力するマクロ
数式を値に固定して、ついでに#N/Aも消すマクロ
ワークシートのオブジェクト名をマクロで設定する
列番号のEnum定数コードを自動生成するマクロ
列見出しをアルファベット⇔数字で切り替える
アクティブシートを新規ブックにコピーするマクロ
選択エリアの0値を置換で消去するマクロ
すべての図形(オブジェクト)を選択するマクロ
特定のセル範囲内にある図形を処理/選択する
すべてのシートをA1セル選択状態にするマクロ
すべてのシートを一括で再表示するマクロ
アクティブブックの保存フォルダを開くマクロ
ブックを非表示にして保存して閉じるマクロ
マクロのロック(赤帯)を一時的に解除するマクロ
空の行を一括で削除するマクロ
着色を残して条件付き書式を削除するマクロ
フォルダ構成表から実際のフォルダを生成するマクロ
汎用マクロ・便利ツール用の共通関数について
VBAの落とし穴
Val関数は全角(日本語入力)の「1」を0に変換する
OnErrorResumeNextはIfの分岐をTrueとみなす
単セル.SpecialCellsはシート全体から実行とみなされる
For Each ○ In Range はセルごとのループとは限らない
セル範囲のコピー&ペーストに非表示のエリアは含まれる?
Dirループ中は別関数であっても他のDirは使えない
Workbooks.Open中にShiftを押すとマクロが停止する
Len関数は文字列長でなく変数の消費メモリを返すことがある
掛け算を置換するとワイルドカード*と認識される
結合セル.Offset(1)は結合エリアの1つ下を指す
Endによる最終行取得は非表示の行を検知できない
通常の実行ではエラーが出るのに1行ずつ実行すると上手くいく原因
Shapesにはドロップダウンリストの▼が含まれる
Function名に句読点を使うとシート上で呼べなくなる
Findは遅くて非表示に弱くてユーザー操作の影響を受ける
Protectメソッドを連続実行すると保護が解除される
読取専用ブック.Saveは警告なく別ブックに保存される
フォルダを部分一致(ワイルドカード)で検索する
日本語の関数はクイックヒントの太字強調がズレる
○○と△△の違い
RangeとCellsの違い
RangeオブジェクトとRangeプロパティの違い
ByVal(値渡し)とByRef(参照渡し)の違い
Do While と Do Until の違い
Do While~Loop と Do~Loop While の違い
Function と Property Get の違い
Property Let と Property Set の違い
変数の型「Long」と「Integer」の違い
IsNumeric関数とISNUMBER関数の違い
VALUE関数とVal関数(とCDbl関数)の違い
Replace関数とReplaceメソッドの違い
Worksheet.Selectと.Activateの違い
MkDirとFSO.CreateFolderの違い
DirとFSO.FileExistsの違い
DirとFSO.FolderExistsの違い
個人用マクロブックと普通のブックの違い
キャメルケースとパスカルケースの違い
フォルダを部分一致(ワイルドカード)で検索する
キャメルケースとスネークケースの違い
システムハンガリアンとアプリケーションハンガリアンの違い
キャメル記法とハンガリアン記法の違い
マクロの高速化
マクロの速度は、それを追求すべき場所でだけ追求する
フォルダを部分一致(ワイルドカード)で検索する
フォルダを部分一致(ワイルドカード)で検索する
【Excel関数】VLOOKUP関数を高速化する方法2選
For文をたくさん分割しても処理は遅くならない
クラスモジュール
簡単で便利なクラスを作って学ぶクラスモジュール入門
VBAにおいて「隠蔽」ってどのくらい重要?
コンストラクタ(Initialize)に引数を渡せない問題
フォルダを部分一致(ワイルドカード)で検索する
クラスモジュールのエラーをクラス内で止める設定
VBEの使い方
変数の宣言を強制「Option Explicit」は必ず設定すべし
VBE(コードを書く画面)の文字/背景色を変更する
邪魔な通知「コンパイルエラー:修正候補」を切る
エラーメッセージを(ググるために)コピーする方法
雑談・その他
人に何か伝えるなら母国語で
3キーフットスイッチに割り当てると便利なショートカットトリオ7選
明けましておめでとうございます。
関数(プロシージャ)分割は思ってるより簡単です
VBAの悩みはVBAerに聞け(Zoom配信)に登壇いたします
変数名に接頭する「my」の意味
プログラマ向けピアノ楽譜の読み方
VBAでインクリメント演算子(++i)を使う方法
50日連続投稿達成!良かったこと悪かったこと
ブログタイトル「和風スパゲティ」の由来
12/11(土)20:00~ VBA勉強会(Zoom)「Sub/Functionの使い方入門!」
明けましておめでとうございます
1/29(土)20:00~ VBA勉強会(Zoom)「ライトニングトーク」
4/2(土)20:00~ VBA勉強会「脱初心者!メンテナンスしやすいマクロの作り方」
姉妹サイト「和風スパゲティのソース」を開設しました
漢字=表意文字って素晴らしい
姉妹サイト閉鎖のご報告
ExcelVBAシステム開発での副業記録
明けましておめでとうございます