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テクニック辞典

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

VBAで行を挿入(追加)する時は、Insertメソッドを使用します。 挿入位置の指定方法は、RowsやEntireRowなどがあるので、それぞれ紹介しています。でも特に理由がない場合は、わかりやすいRowsによる指定をしましょう。 ...
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】列を削除する(1列だけ、連続した複数列、離れた複数列)

VBAで列を削除する時は、RangeやColumns、EntireColumnのDeleteメソッドを使用します。 対象列の指定方法には、「列番号による数値指定」、「列名によるアルファベット指定」があります。 EntireCol...
VBAテクニック辞典

【VBA】行を削除する

VBAで行を削除する時は、Deleteメソッドを使用します。 削除する行を指定するには、RangeやRowなど3つの方法があります。 1行削除する 1つの行を削除するには、3つの方法があります。 サンプルコー...
VBAテクニック辞典

【VBA】強制的にエラーを発生させる

VBAのプログラムから、強制的にエラーを発生させたい場合は、Err.Raiseを使います。 実際には発生していないエラーを、エラー番号を指定して発生させることができます。また、使用されていないエラー番号を使い、エラー内容を独自に設定す...
VBAテクニック辞典

【VBA】文字色の設定されたセルをカウントする関数

ループ処理でFont.Colorを調べる ループ処理で、Font.Color(文字色)を調べてカウントしています。 調べるセル範囲と、カウント対象の文字色を指定すると、対象のセル件数を返す関数です。 コード 引数の説...
VBAテクニック辞典

【VBA】列を選択状態にする(1列だけ、連続した複数列、離れた複数列)

VBAで列を選択状態にする時は、RangeプロパティのSelectメソッドを使用します。 対象列を指定するには、RangeやColumnsなどいくつかの方法があります。 1列だけ選ぶ 【実行結果】 次の3つの選択...
VBAテクニック辞典

【VBA】行を選択する

VBAで行を選択状態にする時は、Selectメソッドを使用します。 選択する行を指定するには、RangeやRowなど3つの選択方法があります。 1行選択する 1つの行を選択します。 サンプルコードでは、2行目...
VBAテクニック辞典

【VBA】セルの選択とテクニック

VBAでセルを選択状態にする時は、Selectメソッドを使用します。 対象セルの指定方法は、「Rangeによる方法」と、「Cellsによる方法」があります。 Rangeを使ったセルの選択 Rangeプロパティで選択...
VBAテクニック辞典

VBAカラー一覧(組み込み定数、RGB値、16進数)|色見本あり

VBAでは、カラーを指定する時に使える組み込み定数があります。 組み込み定数を使えば、カラーコード(RGB値や16進数)がわからなくても、簡単にセルの文字色や背景色を設定・取得できます。 プログラムを見た時に...
VBAテクニック辞典

【VBA】セルの書式設定一覧(フォントやサイズなど)

フォントや色以外にも、下線や太字などもVBAで設定できます。 フォントの設定 Font.Nameプロパティに、フォント名を設定します。 フォント名は、ダブルクォーテーションで囲みます。 POINT フォント名を...
VBAテクニック辞典

【VBA】すべてのエクセルファイルを保存しないで閉じる

繰り返し処理中はメッセージを非表示にして閉じる 複数のエクセルファイルを保存しないで閉じる場合は、For Each…Nextですべてのエクセルファイルを1つずつ処理していきます。 この時、Closeメソッドでファイルを閉じるだけでは...
VBAテクニック辞典

【VBA】新しいエクセルファイルに名前を付けて保存する

SaveAsメソッドで名前を付けて保存 新しいエクセルファイルに名前を付けて保存する時は、SaveAsメソッドを使います。 コード 解説 新しいエクセルファイルの編集後(シート追加など)に、SaveAsメソッドで名前を付けて...
タイトルとURLをコピーしました