エクセルVBA

VBAテクニック辞典

【VBA】セルの文字列の一部だけ書式を変更する(位置指定、特定の文字列、数字だけ)

文字列の位置を指定して書式を設定する場合は、Charactersオブジェクトで対象の文字列に書式を設定します。 Charactersは、第一引数で文字列の開始位置、第二引数で対象の文字数を指定すると、引数で指定した範囲の文字列を操作で...
VBAテクニック辞典

【VBA】データがあるセルだけ書式を設定する

データがあるセルだけに書式を設定したい場合は、次の流れで処理を行います。 UsedRangeプロパティでデータがあるセル範囲を取得 取得したセル範囲を1つずつデータが入力されているかチェック データが入力されて...
VBAテクニック辞典

【VBA】表のセルだけ一括で書式を設定する

表エリアの取得方法 表の部分だけ一括で書式(太字や色、罫線など)を設定したい場合は、セルのCurrentRegionプロパティで対象エリアを取得します。 たとえば、下のような表データがあった時 次のコードどの書き方...
VBAテクニック辞典

【VBA】外枠の罫線だけ消す(個別、ループ処理)

セルの外枠の罫線だけを消す時は、上下左右の線を個別に消します。 消す方法は、Borders(罫線の種類).LineStyle プロパティの引数で「罫線の種類」を指定し、プロパティの値にxlNoneを設定します。 罫線の種...
VBAテクニック辞典

【VBA】罫線をすべて消す(複数セル、行、列指定)

セルの罫線を消す時は、Borders.LineStyle プロパティにxlNoneを設定します。 ただし、これでは「斜めの罫線」は消えません。 なので斜め線は個別に消します。 右下がりの斜め線を消す:Borders(xlD...
VBAテクニック辞典

【VBA】文字の縦方向の配置を変更する(複数セル、行、列指定)

文字の縦位置(垂直方向)を変更する時は、VerticalAlignment プロパティに「下詰め」や「中央揃え」を定数で設定します。 VerticalAlignmentに設定できる定数一覧 定数名 設定される文字の縦位...
VBAテクニック辞典

【VBA】文字の横方向の配置を変更する(複数セル、行、列指定)

文字の横位置(水平方向)を変更する時は、HorizontalAlignment プロパティに「右揃え」や「中央揃え」を定数で設定します。 HorizontalAlignmentに設定できる定数一覧 定数名 設定される文...
VBAテクニック辞典

【VBA】文字を「縮小して全体を表示する」に変更する(複数セル、行、列指定)

文字を「縮小して全体を表示する」に設定する時は、ShrinkToFit プロパティにTrueを設定します。 解除したい場合は、Falseを設定します。 ShrinkToFitプロパティにTrueを設定しても、...
VBAテクニック辞典

【VBA】文字を「折り返して全体を表示する」に変更する(複数セル、行、列指定)

文字を「折り返して全体を表示する」に設定する時は、WrapText プロパティにTrueを設定します。 解除したい場合は、Falseを設定します。 セル(1セル、複数セル、全てのセル)を「折り返して全体を表示する」に設定...
VBAテクニック辞典

【VBA】文字に取り消し線を設定する(複数セル、行、列指定)

文字に取り消し線を設定する時は、Font.Strikethrough プロパティにTrueを設定します。 解除したい場合は、Falseを設定します。 セル(1セル、複数セル、全てのセル)に取り消し線を設定する 1セルの...
VBAテクニック辞典

【VBA】文字に下線を設定する(複数セル、行、列指定)

文字に下線を設定する時は、Font.Underline プロパティに下線の種類を指定します。 下線の種類には次の定数があるので、この中から引きたい下線を選べばOKです。 定数 下線のタイプ xlUnd...
VBAテクニック辞典

【VBA】文字のフォントサイズを変更する(複数セル、行、列指定)

文字のフォントサイズを変更(設定)する時は、Font.Size プロパティでフォントサイズを指定します。 セル(1セル、複数セル、全てのセル)のフォントサイズを変更する 1セルの時 Range("セル番地").Fo...
VBAテクニック辞典

【VBA】文字のフォントを変更する(複数セル、行、列指定)

文字のフォントを変更(設定)する時は、Font.Name プロパティでフォント名を指定します。 プログラムを書く時にフォント名を手打ちで入力すると、スペースの入力漏れや、入力ミスで正しくフォントが設定されな...
VBAテクニック辞典

【VBA】文字を太字、斜体にする(複数セル、行、列指定)

文字を太字にする時はFont.BoldプロパティにTrueを設定、文字を斜体にする時はFont.ItalicプロパティにTrueを設定します。 この2つのプロパティ(Font.BoldとFont.Italic)は独...
VBAテクニック辞典

【VBA】書式をクリアする(複数セル、行、列指定)

セルの色や背景色、太字など書式すべてをクリアする時は、ClearFormatsメソッドを使います。 セル(1セル、複数セル、全てのセル)の書式をクリアする 1セルの時 Range("セル番地").ClearFormats ...
VBAテクニック辞典

【VBA】背景色をクリアする(複数セル、行、列指定)

背景色をクリアする(塗りつぶしなしにする)時は、Interior.ColorIndexプロパティにxlNoneを設定します。 Interior.ColorにRGB(255, 255, 255)を設定する方法は、背景...
VBAテクニック辞典

【VBA】文字色をクリアする(複数セル、行、列指定)

文字色をクリアする時は、Font.ColorIndexプロパティ、Font.Colorプロパティを使った2つの方法があります。 この2つの方法は少し意味がちがいます。 Font.ColorIndexプロパティ...
VBAテクニック辞典

【VBA】文字色を変更する(複数セル、行、列指定)

文字色を変更(設定)する時は、Font.Color プロパティで色を指定します。 この時、色の種類はVBAにすでに準備されている定数、またはRGB関数を使って設定できます。 文字色で使える色の定数やRGB値は、VBAカラー一覧(...
VBAテクニック辞典

【VBA】背景色を変更する(複数セル、行、列指定)

背景色を変更(設定)する時は、Interior.Color プロパティで色を指定します。 この時、色の種類はVBAにすでに準備されている定数、またはRGB関数を使って設定できます。 背景色で使える色の定数やRGB値は、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("...
タイトルとURLをコピーしました