VBA

ExcelVBA

【ExcelVBA・マクロ】GetObjectとCreateObjectの違い|Outlook・Excelの多重起動を防ぐ方法【コピペOK】

ExcelVBAからOutlookやWordなど他のアプリケーションを操作するとき、CreateObjectをそのまま使うと、実行するたびにアプリが新しく起動し、タスクマネージャーにプロセスが何個も残ってしまうことがあります。これはCrea...
ExcelVBA

【ExcelVBA・マクロ】Application.OnKeyの使い方|ショートカットキーを自由にカスタマイズする方法【コピペOK】

Excelでよく使うマクロがあるのに、毎回「開発」タブからボタンを探したり、マクロ一覧から選んで実行したりしていませんか。実はVBAのApplication.OnKeyメソッドを使えば、好きなキーの組み合わせに自分専用のショートカットキーを...
ExcelVBA

【ExcelVBA・マクロ】CDO.Messageの使い方|Outlookを使わずにメールを自動送信する方法(SMTP直接送信)【コピペOK】

ExcelVBAからメールを自動送信したいけれど、パソコンにOutlookがインストールされていない、あるいはGmailなどのWebメールサービスを直接使いたい、というケースはよくあります。そんなときに使えるのがCDO.Messageオブジ...
ExcelVBA

【ExcelVBA・マクロ】ユーザーフォームのScrollBar・SpinButtonの使い方|数値入力を補助するコントロール【コピペOK】

ユーザーフォームで数値を入力してもらう際、TextBoxだけだと「全角で入力される」「範囲外の数値が入力される」といったトラブルが起きがちです。そんなときに便利なのが、ScrollBar(スクロールバー)とSpinButton(スピンボタン...
ExcelVBA

【ExcelVBA・マクロ】SpecialCellsメソッド完全ガイド|可視セル・空白セル・数式セルだけを取得する方法【コピペOK】

「オートフィルターで絞り込んだ結果だけをコピーしたい」「空白セルだけに色を付けたい」といった処理を書こうとすると、For Eachで全セルをループして条件分岐するコードになりがちです。実はSpecialCellsメソッドを使えば、こうした処...
ExcelVBA

【ExcelVBA・マクロ】Property Get/Let/Setの使い方|クラスモジュールで独自プロパティを作る方法【コピペOK】

ExcelVBAでクラスモジュールを使い始めると、必ずぶつかるのが「プロパティをどうやって自作するのか」という疑問です。変数をPublicで宣言するだけでも値の出し入れはできますが、それでは「不正な値が入ってきてもチェックできない」「読み取...
ExcelVBA

【ExcelVBA・マクロ】Hyperlinks.Addの使い方|セルにハイパーリンクを自動設定する方法【コピペOK】

はじめにExcelでセルに大量のURLやファイルパスへのリンクを貼りたいとき、1つずつ手作業で「ハイパーリンクの挿入」を行うのは大変です。実は、この作業はVBAのHyperlinks.Addメソッドを使えば数行のコードで自動化できます。この...
ExcelVBA

【ExcelVBA・マクロ】Worksheets.Add・Copy・Moveの使い方|シートの追加・コピー・移動を自動化する方法【コピペOK】

はじめに複数のシートを扱うExcelブックでは、「毎月同じフォーマットのシートを追加する」「特定のシートを別ブックへコピーする」「シートの並び順を整理する」といった作業が頻繁に発生します。これらの操作はすべて手作業でも可能ですが、シート数が...
ExcelVBA

【ExcelVBA・マクロ】FormulaとFormulaR1C1の使い方|VBAでセルに数式を設定する方法【コピペOK】

はじめにVBAでセルに値を直接入力するだけでなく、「数式そのもの」を設定したい場面があります。たとえば「合計はSUM関数で計算させたいが、その式自体をマクロで一括入力したい」といったケースです。このようなときに使うのがFormulaプロパテ...
ExcelVBA

【ExcelVBA・マクロ】InStrRev関数の使い方|文字列を後ろから検索する方法(拡張子・ファイル名抽出)【コピペOK】

はじめにファイルのフルパスから拡張子だけを取り出したい、あるいはファイル名だけを抽出したいといった場面で、「文字列の後ろ側から特定の文字を検索したい」ことがあります。こうしたときに便利なのがInStrRev関数です。InStr関数が文字列の...