
基本からわかるExcel VBA 実用Q&A
目次
-
[Excel VBA]ファイルを削除するには?
ファイルを削除するには、Killステートメントを使います。Killステートメントを利用すると、事前の確認ダイアログなどは表示せずに、即座にファイルが削除されます。また、削除したファイルは「ごみ箱」には移動せず、完全に削除されてしまうので注意が必要です。ごみ箱から復活させることはできません。
-
[Excel VBA]シートを印刷するには?
シートを印刷するには、WorksheetオブジェクトのPrintOutメソッドを使います。引数を明記することで、印刷ページ数、印刷部数などを指定できます。RangeオブジェクトやWorkbookオブジェクトにもPrintOutメソッドがあります。そこで、特定のセル範囲だけを印刷したり、ブック全体を…
-
[Excel VBA]印刷プレビューを実行するには?
印刷プレビューを実行するには、WorksheetオブジェクトやRangeオブジェクトのPrintPreviewメソッドを利用します。これは、PrintOutメソッドで引数Preview:=Trueを指定した場合と同じ動作になります。PrintPreviewメソッドでは、印刷部数やページ数などは指定…
-
[Excel VBA]複数のシートを選択して印刷するには?
ブック内にある複数のシートを選択してまとめて印刷するには、印刷したいシートをグループ化しておきます。シートをグループ化するには、配列を使う方法と、Selectメソッドを使う方法があります。Selectメソッドでグループ化するには、「シートをグループ化するには?」で解説した通り、引数Replaceを…
-
[Excel VBA]シートをPDFとして保存するには?
Excel 2007以降では、ブックやシートをPDF形式で保存する機能を利用できます。マクロでPDF化するには、Workbook、Worksheet、Rangeなどのオブジェクトに対してExportAsFixedFormatメソッドを実行します。
-
[Excel VBA]数式バーを表示/非表示するには?
シートの上部にある数式バーの表示/非表示を切り替えるには、ApplicationオブジェクトのDisplayFormulaBarプロパティを使います。Falseを指定すると非表示にでき、Trueを指定すると再び表示できます。
-
[Excel VBA]ファイルをコピーするには?
Excel VBAでは、セルやシート、ブックを操作するだけでなく、Windowsが管理するファイルを操作することもできます。ファイルのコピー作業など、手作業では面倒な操作も、マクロで自動化できます。
-
[Excel VBA]シートをグループ化するには?
ブック内にある特定のシートを複数同時に選択することを「グループ化」といいます。特定のシートだけ選んで印刷したり、別ブックにコピーしたりするときなどに便利な機能です。
-
[Excel VBA]隣のシートを操作するには?
年月や期ごとに並んだシートで、前のシートの値を参照して計算したり、値を転記したりするケースがあります。“前のシート”とは、アクティブシートの左隣にあるシートのこと。右隣のシートは“次のシート”などと呼びますね。
-
[Excel VBA]指定した位置にシートを挿入するには?
シートを挿入するには、WorksheetsコレクションのAddメソッドを利用します。特定のシートの左側に挿入するには引数Before、右側に挿入するには引数Afterを使って指定します。ブックの一番左端に挿入するときは、現時点で一番左端のシートを意味するSheets(1)を使い、Before:=S…
-
[Excel VBA]シートをコピーするには?
シートをコピーするには、WorksheetオブジェクトのCopy メソッドを実行します。引数のBeforeまたはAfterで、コピーする位置を指定することができます。特定のシートの左側に挿入するにはBefore、右側に挿入するにはAfterを用います。シートをコピーすると、コピーされたシートがアク…
-
[Excel VBA]シートを削除するには?
シートを削除するには、WorksheetオブジェクトのDelete メソッドを実行します。それ自体は簡単ですが、厄介なのは、削除時に毎回表示される「シートを削除すると元に戻せません。」という警告のダイアログです。これが表示されると、マクロがいったん停止してしまいます。
-
[Excel VBA]シートをパスワードで保護するには?
他人にブックを渡して閲覧してもらう場合など、シートの改変を防ぐ目的で、シートを保護することがあります。マクロでシートを保護するには、WorksheetオブジェクトのProtectメソッドを実行します。引数Passwordを用いて、パスワードを指定することができます。
-
[Excel VBA]名前を付けて保存するには?
ブックに名前を付けて保存するには、WorkbookオブジェクトのSaveAsメソッドを実行します。保存しようとしたフォルダーに、すでに同じ名前のブックが存在する場合、上書きするかどうかの確認ダイアログが表示されます。この確認で「いいえ」または「中止」をクリックすると、SaveAsメソッドはエラーに…
-
[Excel VBA]ブックのパスを取得するには?
ブックが保存されているフォルダーのパスを取得するには、WorkbookオブジェクトのPathプロパティを調べます。Pathプロパティが返すパスは、「C:\Work\nsw」のように末尾に「¥」記号が付かないので注意しましょう(図1)。このパスにブック名などをつなげてフルパスにするには、「&"¥"」…
-
[Excel VBA]別ブックのマクロを実行するには?
他のブックに記述されているマクロを実行する場合、一般には「参照設定」という機能を使ってそのブックを参照できるように設定します。ただ、これは少々面倒です。
-
[Excel VBA]フィルターで抽出した数を調べるには?
フィルターで絞り込んだ結果が何件あるかを返すプロパティは、VBAにありません。絞り込んだ結果の数を調べるには、ワークシート関数のSUBTOTAL関数を使います。
-
[Excel VBA]フィルターの結果をコピーするには?
フィルターで絞り込んだ結果だけを別セルにコピーするには、絞り込まれた表に対してCurrentRegionプロパティを使います。すると、フィルターで非表示になっているセルは含まずに、抽出結果全体を指定できます。
-
[Excel VBA]ワークシート関数を使うには?
VBAからワークシート関数を呼び出して利用するには、WorksheetFunctionコレクションを使います。例えばVBAには、セルに入っている数値の合計を一発で求めるような関数はありません。しかし、WorksheetFunctionコレクションを使ってワークシート関数の「SUM」を呼び出せば、セ…
-
[Excel VBA]ブックを開くには?
ブック(ファイル)を開くときは、WorkbooksコレクションのOpenメソッドを実行します。引数Filenameには、開きたいブックのフルパスを指定します。パスを指定せずに、ファイル名だけを指定した場合は、カレントフォルダーに存在するブックと認識されます。開いたブックは、実行後に必ずアクティブブ…