エクセルVBA

VBAテクニック辞典

【VBA】特定文字を含む行をすべて削除する

特定文字を含む行をすべて削除する方法は、「InStr関数で調べ削除する方法」と「Findメソッドで対象セルを取得し削除する方法」があります。 どちらも1件ずつ処理をするのは変わらないですが、複雑な条件の場合...
VBAテクニック辞典

【VBA】特定文字を含む列をすべて削除する

特定文字を含む列をすべて削除する方法は、「InStr関数で調べ削除する方法」と「Findメソッドで対象セルを取得し削除する方法」があります。 どちらも1件ずつ処理をするのは変わらないですが、複雑な条件の場合...
VBAテクニック辞典

【VBA】空白セルがある行をすべて削除する

空白セルがある行をすべて削除する方法は、「ループ処理で1行ずつチェックしながら削除する方法」と、「SpecialCellsメソッドで空白セルを取得し、一括削除する方法」があります。 複雑なロジックも行いたい...
VBAテクニック辞典

【VBA】空白セルがある列をすべて削除する

空白セルがある列をすべて削除する方法は、「ループ処理で1列ずつチェックしながら削除する方法」と、「SpecialCellsメソッドで空白セルを取得し、一括削除する方法」があります。 複雑なロジックも行いたい...
VBAテクニック辞典

【VBA】別ブック、別シートの行を削除する

別ブックを指定する時はWorkbooks、別シートを指定する時はWorksheetsを使って行を削除します。 サンプルコードでは、Rowsを使って行削除を行っています。RangeやEntireRowを使った行削除を行いたい場合は、次の...
VBAテクニック辞典

【VBA】複数シートの行を削除する

複数シートの行を削除するする時は、For Each(繰り返し処理)で各シートを1つずつ移動しながら、行の削除を行います。 サンプルコードでは、Rowsを使って行削除を行っています。RangeやEntireRowを使った行削除を行いたい...
VBAテクニック辞典

【VBA】行削除を高速化する方法

描画を停止し、まとめて行削除をする 大量の行を削除する場合、処理時間が遅いことがあります。 その場合は、「描画の停止」と「行をまとめて削除する」ことで高速化が可能です。 行削除で時間がかかる1番の理由は、1つずつ行を削除する処...
VBAテクニック辞典

【VBA】条件に一致する行をまとめて削除する

ループ処理で、1番下の行から1行ずつ判定し削除する 条件に一致する行だけを削除したい時は、ループ処理で1行ずつ判定し削除します この時の大事なポイントは、先頭の行からではなく、最後の行から順番に処理をすることです。 先頭行...
VBAテクニック辞典

【VBA】列削除を高速化する方法

描画を停止し、まとめて列削除をする 大量の列を削除する場合、処理時間が遅いことがあります。 その場合は、「描画の停止」と「列をまとめて削除する」ことで高速化が可能です。 列削除で時間がかかる1番の理由は、1つずつ列を削除する処...
VBAテクニック辞典

【VBA】別ブック、別シートの列を削除する

別ブックを指定する時はWorkbooks、別シートを指定する時はWorksheetsを使って列を削除します。 サンプルコードでは、Columnsを使って列削除を行っています。RangeやEntireColumnを使った列削除を行いたい...
VBAテクニック辞典

【VBA】複数シートの列を削除する

複数シートの列を削除するする時は、For Each(繰り返し処理)で各シートを1つずつ移動しながら、列の削除を行います。 サンプルコードでは、Columnsを使って列削除を行っています。RangeやEntireColumnを使った列削...
VBAテクニック辞典

【VBA】条件に一致する列をまとめて削除する

ループ処理で、右側の列から1列ずつ判定し削除する 条件に一致する列だけを削除したい時は、ループ処理で1列ずつ判定し削除します この時の大事なポイントは、先頭の列からではなく、最後の列から順番に処理をすることです。 先頭列か...
VBAエラー原因・解決方法

実行時エラー6「オーバーフローしました。」の原因・解決方法

エラー内容 VBA実行時に、実行時エラー6「オーバーフローしました。」と表示される。 原因と解決方法 3つの原因と、その解決方法が考えられます。 原因1. 変数に大きすぎる値を格納 解説 VBAの型にはそれぞれ、格納...
VBAエラー原因・解決方法

実行時エラー5「プロシージャの呼び出し、または引数が不正です。」の原因・解決方法

エラー内容 VBA実行時に、実行時エラー5「プロシージャの呼び出し、または引数が不正です。」と表示される。 原因と解決方法 1つの原因と、その解決方法が考えられます。 原因1. 関数の引数が範囲外 解説 関数の引数に...
VBAエラー原因・解決方法

実行時エラー3「Return に対応する GoSub がありません」の原因・解決方法

エラー内容 VBA実行時に、実行時エラー3「Return に対応する GoSub がありません」と表示される。 原因と解決方法 2つの原因と、その解決方法が考えられます。 原因1. Returnから戻るGoSubがない ...
VBAエラー原因・解決方法

「同じ適用範囲内で宣言が重複しています。」の原因・解決方法

エラー内容 VBAコンパイル時に、「同じ適用範囲内で宣言が重複しています。」と表示される。 原因と解決方法 1つの原因と、その解決方法が考えられます。 原因1. 同じ名前の変数や定数が定義されている 解説 同じプロシ...
VBAエラー原因・解決方法

「名前が適切ではありません:」の原因・解決方法

エラー内容 VBAコンパイル時に、「名前が適切ではありません:」と表示される。 原因と解決方法 2つの原因と、その解決方法が考えられます。 原因1. 同じ名前の変数や定数を定義している 解説 モジュールレベル...
VBAエラー原因・解決方法

「引数は省略できません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「引数は省略できません。」と表示される。 原因と解決方法 3つの原因と、その解決方法が考えられます。 原因1. 引数の数が足りない 解説 プロシージャに渡す引数が足りていないのが原因...
VBAエラー原因・解決方法

「引数の数が一致していません。または不正なプロパティを指定しています。」の原因・解決方法

エラー内容 VBAコンパイル時に、「引数の数が一致していません。または不正なプロパティを指定しています。」と表示される。 原因と解決方法 2つの原因と、その解決方法が考えられます。 原因1. 引数の数が多すぎる 解説 ...
VBAエラー原因・解決方法

「名前付き引数が見つかりません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「名前付き引数が見つかりません。」と表示される。 原因と解決方法 2つの原因と、その解決方法が考えられます。 原因1. スペルが間違っている 解説 プロシージャの名前付き引数のスペルが間...
VBAエラー原因・解決方法

「プロパティの使い方が不正です。」の原因・解決方法

エラー内容 VBAコンパイル時に、「プロパティの使い方が不正です。」と表示される。 原因と解決方法 4つの原因と、その解決方法が考えられます。 原因1. = がない 解説 プロパティに値をセットする時に、=がない...
VBAエラー原因・解決方法

「値の取得のみ可能なプロパティに値を設定することはできません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「値の取得のみ可能なプロパティに値を設定することはできません。」と表示される。 原因と解決方法 1つの原因と、その解決方法が考えられます。 原因1.読み取り専用のプロパティに値をセット ...
VBAテクニック辞典

【VBA】行を挿入(追加)する

VBAで行を挿入(追加)する時は、Insertメソッドを使用します。 挿入位置の指定方法は、RowsやEntireRowなどがあるので、それぞれ紹介しています。でも特に理由がない場合は、わかりやすいRowsによる指定をしましょう。 ...
VBAエラー原因・解決方法

「For Each に指定する変数はバリアント型変数またはオブジェクト型でなければなりません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「For Each に指定する変数はバリアント型変数またはオブジェクト型でなければなりません。」と表示される。 原因と解決方法 1つの原因と、その解決方法が考えられます。 原因1. 制御...
VBAエラー原因・解決方法

「メソッドまたはデータ メンバが見つかりません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「メソッドまたはデータ メンバが見つかりません。」と表示される。 原因と解決方法 3つの原因と、その解決方法が考えられます。 原因1. 列挙型やユーザー定義型で、存在しないメンバーを指定...
VBAエラー原因・解決方法

「ユーザー定義型は定義されていません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「ユーザー定義型は定義されていません。」と表示される。 原因と解決方法 3つの原因と、その解決方法が考えられます。 原因1.型指定のスペルが間違っている 解説 変数宣言する時に、型指...
VBAエラー原因・解決方法

「定数には値を代入できません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「定数には値を代入できません。」と表示される。 原因と解決方法 2つの原因と、その解決方法が考えられます。 原因1.定数として定義している 解説 Constを使って定数として定義した...
VBAエラー原因・解決方法

「識別子が長すぎます。」の原因・解決方法

エラー内容 VBAコンパイル時に、「識別子が長すぎます。」と表示される。 識別子とは、変数、定数、引数、プロシージャなどの名前のことです。 原因と解決方法 1つの原因と、その解決方法が...
VBAエラー原因・解決方法

「オブジェクトが必要です。」の原因・解決方法

エラー内容 VBAコンパイル時に、「オブジェクトが必要です。」と表示される。 原因と解決方法 次の原因と解決方法が考えられます。 原因1. オブジェクト変数でないのに、オブジェクトを格納している 解説 Long型やS...
VBA開発ルール

VBAのコーディングルール

プログラムの基本的な書き方・作法についてまとめています。 「今まで我流だったけど、キレイで効率的なプログラムを書きたい」 という人は、ぜひ参考に! VBAのオブジェクトや変数の命名規則については...
VBA開発ルール

VBAの命名規則

VBAのオブジェクトや変数の命名規則をまとまています。 プログラムの基本的な書き方・作法については、別記事:VBAのコーディングルールで紹介しています。 基本の命名規則 英語、またはローマ字で命名する 英語、またはローマ...
VBAエラー原因・解決方法

【VBAエラー】「参照が不正または不完全です。」の原因・解決方法

エラー内容 VBAコンパイル時に、「参照が不正または不完全です。」と表示される。 原因と解決方法 3つの原因と解決方法が考えられます。 原因1. オブジェクトの指定がない 解説 オブジェクト(セルやシート)の指定がな...
VBAエラー原因・解決方法

【VBAエラー】「修正候補: 式」の原因・解決方法

エラー内容 VBAコンパイル時に、「修正候補: 式」と表示される。 原因と解決方法 プログラムの記述が途中で切れていたり、記述もれがある時に表示されるメッセージです。 プログラムを書いてる途中で、...
VBAエラー原因・解決方法

【VBAエラー】「修正候補: 識別子」の原因・解決方法

エラー内容 VBAコンパイル時に、「修正候補: 識別子」と表示される。 原因と解決方法 識別子とは、変数や定数、関数の名前のことです。 VBAでは名前を付けるルールがあり、このルールに反した名前を付けようとするとこのエラーが...
VBAエラー原因・解決方法

【VBAエラー】「修正候補: ステートメントの最後」の原因・解決方法

エラー内容 VBAコンパイル時に、「ステートメントの最後」と表示される。 原因と解決方法 「ステートメントの最後」とありますが、実際には文法・記述ミスが原因でよく起こります。 なので原因はいくつもありますが、6つの原...
VBAエラー原因・解決方法

【VBAエラー】「修正候補: 区切り記号 または)」の原因・解決方法

エラー内容 VBAコンパイル時に、「修正候補: 区切り記号 または)」と表示される。 原因と解決方法 4つの原因と解決方法が考えられます。 原因1. )が足りない 解説 右カッコ(閉じるカッコ)が足りないことが原...
VBAテクニック辞典

【VBA】連続したセルと離れたセルを同時に選択する

Rangeを使ってセルを選択 「連続したセルを選択する」、「離れたセルを選択する」の内容を合わせた方法です。 連続したセルはコロン、離れたセルはカンマ区切りで記述します。 セル指定後に、Selectメソッドで選択状...
VBAテクニック辞典

【VBA】離れたセルを選択する

Rangeを使ってセルを選択 Rangeプロパティで選択するセルを、カンマ区切りで指定します。この時、引数全体をダブルクォーテーションで囲みます。 対象セルを指定したら、Selectメソッドで選択状態にします。 コード ...
VBAテクニック辞典

【VBA】連続したセルを選択する

VBAでセルを選択状態にする時は、Selectメソッドを使用します。 対象セルの指定方法は、「Rangeによる方法」と、「RangeとCellsを組み合わせた方法」の2つがあります。 サンプルコードでは、セルB2~F4を選択...
VBAテクニック辞典

【VBA】複数のシートを同時にまとめてコピーする

複数のワークシートを同時にコピーする方法を、3つ紹介します。 目的や状況に応じて、使いやすい方法を選んでください。 シート名を配列で指定してコピー Worksheets(Array("○○","○○")).Copyと書き、...
VBAテクニック辞典

【VBA】別ファイルにシートをコピーする

Before/Afterでファイル名を指定しコピー 最初にコピー先のエクセルファイルを開きます。 Copyメソッドでシートをコピーする時に、Before/AfterでWorkbooks("○○.xlsx").Worksheets("...
VBAテクニック辞典

【VBA】コピーしたワークシートに名前を設定する

ActiveSheet.Nameプロパティで設定 Copyメソッド実行直後に、ActiveSheetのNameプロパティに名前を設定します。 シートをコピーした直後には、コピーして新しく作成したシートがアクティブになっているからです...
VBAテクニック辞典

【VBA】ワークシートを最後にコピーする

After:=Worksheets(Worksheets.Count)でシートコピー ブックの最後(1番右)にコピーしたシートを作成するには、Copyメソッドの引数に、After:=Worksheets(Worksheets.Count)...
VBAテクニック辞典

【VBA】ワークシートを先頭にコピーする

Before:=Worksheets(1)でシートコピー ブックの先頭(1番左)にコピーしたシートを作成するには、Copyメソッドの引数に、Before:=Worksheets(1)と書きます。 Beforeは、シートを作成する場所...
VBAテクニック辞典

【VBA】指定したシート以外のシートをすべて削除する

ループ処理で1つずつシート名を比較し削除 繰り返し処理の中で、1つずつ「処理中のワークシート名」と「指定したシート名」を比較し、名前が違う時に削除処理をおこないます。 コード 解説 繰り返し処理(For Each)の中で...
VBAテクニック辞典

【VBA】アクティブシートを削除する

ActiveSheet.Deleteで削除 アクティブシートを削除したい時は、ActiveSheet.Deleteで削除できます。 コード 解説 アクティブシートを削除する命令の前後では、Application.Displa...
VBAテクニック辞典

【VBA】複数のワークシートをまとめて追加する

Count:=数値 でシートを追加 Worksheets.Addで新しいシートを追加する時に、「Count:=数値」を指定します。 指定した数値の数だけシートが追加されます。 コード 解説 サンプルコードでは、Coun...
VBAテクニック辞典

【VBA】新しいワークシートを最後に追加する

After:=Worksheets(Worksheets.Count)でシートを追加 Worksheets.Addで新しいシートを追加する時に、After:=Worksheets(Worksheets.Count)と指定すると、シートの最...
VBAテクニック辞典

【VBA】新しいワークシートを先頭に追加する

Before:=Worksheets(1)でシートを追加 Worksheets.Addで新しいシートを追加する時に、Before:=Worksheets(1)と指定すると、シートの先頭(1番左)に追加されます。 コード 解説 ...
VBAテクニック辞典

【VBA】パスワードが設定されたエクセルファイルを開く

パスワードの設定されたエクセルファイルをVBAで開こうとすると、パスワードの入力画面が表示されてしまいます。 パスワードもVBAで自動入力し、パスワード入力画面を表示せずにエクセルファイルを開く方法になります。「読み取りパスワード」と...
VBAテクニック辞典

【VBA】パスワードを設定してエクセルファイルを保存する

エクセルファイルにパスワードを設定して保存する場合、パスワードには次の2種類があります。 読み取りパスワード:パスワードを知らないと中身を見ることもできない 書き込みパスワード:パスワードを知らないと保存できないが、中身を見...
VBAテクニック辞典

【VBA】同名ファイルが存在しても、メッセージ非表示で上書き保存する

Application.DisplayAlertsでメッセージを制御する 新規のエクセルファイル(ブック)に名前を付けて保存する時、すでに同じ名前のファイルが存在すると、下の警告メッセージが表示されVBAの処理が止まってしまいます。 ...
VBA勉強方法

エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介

僕は職業訓練校で、エクセルVBAの講師を何回かしたことがあるのですが、その時に教科書を選ぶことになったので、多くのエクセルVBAの本をチェックしました。 なので、その中から特に良かった書籍を目的別に紹介していきます。 ...
VBAエラー原因・解決方法

「For…Next 内に対応する Exit For がありません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「For...Next 内に対応する Exit For がありません。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. For文の外にExit ...
VBAエラー原因・解決方法

「End With に対応する With がありません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「End With に対応する With がありません。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. Withに対してEnd Withの方が...
VBAエラー原因・解決方法

「End With が必要です。」の原因・解決方法

エラー内容 VBAコンパイル時に、「End With が必要です。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. Withの閉じ忘れ 解説 Withステートメントの終わりで...
VBAエラー原因・解決方法

「End If に対応する If ブロックがありません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「End If に対応する If ブロックがありません。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. Ifに対してEnd Ifの方が多い ...
VBAエラー原因・解決方法

「Else に対応する If がありません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「Else に対応する If がありません。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. Elseの直前にEnd If 解説 Elseの...
VBAエラー原因・解決方法

「If ブロックに対応する End If がありません。」の原因・解決方法

エラー内容 VBAコンパイル時に、「If ブロックに対応する End If がありません。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. If文の閉じ忘れ 解説 If文の処...
VBAエラー原因・解決方法

「Next で指定された変数の参照が不正です。」の原因・解決方法

エラー内容 VBAコンパイル時に、「Next で指定された変数の参照が不正です。」と表示される。 原因と解決方法 おもに次の2つの原因と解決方法が考えられます。 原因1. ForとNextの変数が違う 解説 Forで...
タイトルとURLをコピーしました