ExcelVBA

VBATips

プロシージャを[マクロ]ダイアログに表示させない【Option Private Module】【ExcelVBA】

プロシージャを[マクロ]ダイアログに表示させたくない VBA開発案件にて、ユーザー側にマクロ名を表示させたくないケースがあります。 その場合、ツールバーの「マクロ」を選択して起動した下記画面に、 指定...
0
VBATips

全シートを標準フォント・標準フォントサイズに統一する処理をパーツ化する【ExcelVBA】

コピペでOK。お客様への提出物をきれいに体裁を整えましょう。人力では馬鹿らしいですが、マクロでは1秒です。すべてのシートのセル「フォント」「フォントサイズ」を統一します。コピペですぐ使えます。
0
VBATips

Variant型変数が初期値か否か判定したい→isEmptyを使う【ExcelVBA】

Variant型変数が初期値か否か判定したい VBA開発案件にて、Variant型の変数で2次元配列で処理をする案件があり、 データが初期値の空の場合(Emptyのまま)は、初期化処理するようにしたい...
0
VBATips

指定ブックのシートの並びを名前順に並び替える【パーツ化】【ExcelVBA】

指定ブックのシートの並びを名前順に並び替える VBA開発案件にて、運用ブックは本来名前順(日付順)で並んでいる想定が、 ユーザーが触ってしまったなどで並びがおかしい場合があります。 ユーザーにその部分...
0
配列(一次元/二次元)

一次元配列をシートに反映する処理をパーツ化【ExcelVBA】

高速化のため配列で計算することは多いと思います。 最終的に結果をワークシートへ貼り付ける処理も多く、 今回パーツ化したのでコピペでそのまま使用可能です。 上記をお好きなモジュール内にコピペしてください...
0
VBATips

オートシェイプが存在するセル位置(セル番地)を取得する【ExcelVBA】

オートシェイプが存在するセル位置(セル番地)を取得したい 開発案件でたまにオートシェイプの位置からプログラムを分岐させるケースがあります。 オートシェイプにはAddressの概念はないため、 オートシ...
0
関数・メソッド

無限ループを無理やり止める【ExcelVBA】

無限ループを無理やり止める 以下のどちらかの方法で止まります。 Escキーを押し続けて無理やり止める。 Ctrlキー+Breakキーを押して強制終了する。 以下の画面が出て止まるはずです。 上記で止ま...
0
関数・メソッド

Propertyプロシージャを使ってプロパティを設定する【Property Let/Set/Get】【ExcelVBA】

Propertyプロシージャ プロパティの作成や設定をカスタムできるプロシージャです。 Propertyプロシージャには3つのステートメントが存在します。 1.Property Letステートメント ...
0
配列(Dictionary)

Dictionaryのキー/アイテム(要素)をセルに反映する【ExcelVBA】

連想配列Dictionaryの中身をエクセルに反映したい場合があります。 その場合は、ForEachでループして書き出してしまえばよいです。 Dictionaryのキー/アイテムをセルに反映するサンプ...
0
VBATips

指定セルへ条件付き書式を再設定する処理をパーツ化する【ExcelVBA】

使い方 上記をお好きなモジュール内にコピペしてください。 実際に使用する時は以下のような形で使用してください。 注意点 上記コードのみでは動かず、最終行を取得するコード(Call_LastRowWs)...
0
VBATips

指定セルへ入力規則を再設定する処理をパーツ化する【ExcelVBA】

使い方 上記をお好きなモジュール内にコピペしてください。 実際に使用する時は以下のような形で使用してください。 注意点 上記コードのみでは動かず、最終行を取得するコード(Call_LastRowWs)...
0
VBATips

セルの日付を翌月or前月(翌日or前日)にする処理をパーツ化する【ExcelVBA】

使い方 上記をお好きなモジュール内にコピペしてください。 実際に使用する時は以下のような形で使用してください。 ダブルクリックで処理させる場合を記載しています。 実際のセルのイメージは以下。 注意点 ...
0
関数・メソッド

Functionプロシージャを使ってプログラムを作る【Functionステートメント】【ExcelVBA】

Functionプロシージャ プロシージャとはプログラムの処理をひとまとめにしたもののこと。 以下のFunctionステートメントを使用したものをFunctionプロシージャと呼びます。 構文 Fun...
0
関数・メソッド

Subプロシージャを使ってプログラムを作る【Subステートメント】【ExcelVBA】

Subプロシージャ プロシージャとはプログラムの処理をひとまとめにしたもののこと。 なかでも以下のSubステートメントを使用したものをSubプロシージャと呼びます。 構文 Sub name      ...
0
関数・メソッド

ユーザーがデータを入力できるダイアログボックスを表示する【InputBox関数】【ExcelVBA】

InputBox関数 ユーザーが自身でテキストボックスにデータを入力することができるダイアログボックスを表示します。 任意のデータを入力できるので氏名の入力や文字列の検索など、様々な場面で活用できます...
0
関数・メソッド

任意のメッセージをダイアログボックスに表示する【MsgBox関数】【ExcelVBA】

MsgBox関数 任意のメッセージをダイアログボックスに表示します。 ボタンをいくつか配置してユーザーに選択を委ね、その返答により処理を分岐することもできるので パソコンに詳しくない無いユーザーでも簡...
0
一覧表

【一覧】メッセージボックスの設定項目【MsgBox関数】【ExcelVBA】

メッセージボックスを設定する定数一覧 設定項目 値 定数 内容 0 vbOKOnly ボタンのみ 1 vbOKCancel とボタン 2 vbAbortRetryIgnore 、、の各ボタン 3 vb...
0
関数・メソッド

再帰呼び出しで自身のプロシージャを呼び出す【ExcelVBA】

再帰呼び出し プロシージャ内で自身のプロシージャを呼び出すことを「再帰呼び出し」と言います。 再帰プロシージャ、再帰処理、再帰関数など呼び方は様々です。 再帰呼び出しを使用したサンプルコード 注意点 ...
0
関数・メソッド

無限ループを意図的に実行する【Do Loop】【ExcelVBA】

無限ループ マクロでループ処理を試行していると、ループ処理を抜けられず無限ループに陥ることがあります。 無限ループが発生すると制御不能になるので基本的には回避するべき事象ですが あえて無限ループを使用...
0
関数・メソッド

コレクションや配列に対してループ処理を行う【For Each Next】【ExcelVBA】

For Each Nextステートメント コレクションに対してループ処理を行いたいときはFor Each Nextステートメントが便利です。 全てのシートから特定のシート名を調べたり、印刷することがで...
0