VBA樹林– category –
-
【Excel VBA】選択した複数シート(作業グループ)に同じ処理を一括実行する方法
複数のシートに同じヘッダーを追加したり、同じセルの値を更新したり、同じ印刷設定を適用したり…。Excelで複数のシートにまったく同じ操作をしたい、という場面は頻繁にあります。 VBAを使えば、「現在選択されているすべてのシート(作業グループ)」を... -
【Excel VBA】複数のワークシートを作業グループとしてまとめて選択する方法
複数のシートに同じヘッダーを追加したり、同じ印刷設定を適用したりする際、手作業ではCtrlキーやShiftキーを押しながらシートタブをクリックして「作業グループ」を作成します。 VBAを使えば、この作業グループの作成も自動化できます。この記事では、Wo... -
【Excel VBA】別シートへ移動する直前に入力チェックを行う方法 (Deactivateイベント)
入力用シートを作成した際、「ユーザーが必須項目を記入し忘れたまま、他のシートに移動してしまうのを防ぎたい」という場面があります。 VBAの**Worksheet_Deactivateイベント**を使えば、特定のシートからフォーカスが外れた(=ユーザーが別のシートを... -
【Excel VBA】Forループを使って連番のワークシートを複数一括で作成する方法
月次レポートのために「4月」「5月」…「3月」という12枚のシートを用意したり、支店ごとの集計シートを「支部01」「支部02」…と連番で作成したりする作業は、手作業では非常に面倒です。 VBAの**For...NextループとWorksheets.Addメソッドを組み合わせるこ... -
【Excel VBA】ユーザーに再表示させない強力なシートの非表示方法
Excelで設定シートやマスターデータなどをユーザーに見せたくない、または誤って編集されるのを防ぎたい場合、シートを「非表示」にします。しかし、通常の非表示設定では、ユーザーがシート見出しを右クリックして「再表示」を選べば、簡単に見えてしまい... -
【Excel VBA】保護されたシートで許可されている操作の詳細を取得する方法
VBAでマクロを操作する際、シートが保護されているかどうかを調べることはよくあります。しかし、単に保護されているか(True/False)を知るだけでなく、「具体的にどの操作が許可されているのか」を詳細に知りたい場合もあります。 例えば、「この保護され... -
【Excel VBA】ワークシートをパスワードで保護・保護解除する方法
数式や重要なデータが入力されているシートを、ユーザーに誤って変更されないように保護したい、という場面はよくあります。VBAを使えば、シートの保護と、その解除を自動的に行うことができます。 この記事では、ワークシートをパスワード付きで保護する.... -
【Excel VBA】アクティブシートが「ワークシート」かどうかを判定する方法
VBAマクロでRange("A1").Valueのようにセルを操作するコードを書いた場合、もしユーザーが「グラフシート」をアクティブにした状態でそのマクロを実行すると、セルが存在しないためエラーになってしまいます。 このようなエラーを未然に防ぐには、処理の実... -
【Excel VBA】隣のシート(前・後ろ)をオブジェクトとして取得する方法
VBAで複数のワークシートを順番に処理していく際、「現在アクティブなシートの、すぐ隣のシート」を操作したいという場面がよくあります。 VBAのWorksheetオブジェクトには、こうした隣接シートを簡単に取得するための便利なプロパティ、.Previous(前のシ... -
【Excel VBA】確認メッセージを表示せずにワークシートを削除する方法
VBAマクロで、処理の最後に不要になった一時シートを削除したり、古いデータシートを消去したりする場面はよくあります。 しかし、単純に.Deleteメソッドを使うと、「選択したシートは完全に削除されます。」という確認メッセージが表示され、マクロが一時... -
【Excel VBA】既存のシートから新しいブックを作成する3つの方法
完成したレポートシートだけをメールで送りたい、あるいは特定の複数シートだけをまとめて別ファイルとして保存したい、といった場面はよくあります。 VBAの.Copyや.Moveメソッドを使えば、シートを新しいブックに切り出す操作を簡単に行えます。この記事... -
【Excel VBA】既存のワークシートをコピー(複製)する方法 (.Copy)
月次レポートの作成などで、書式や数式が整った「ひな形」シートを毎月複製して使いたい、という場面は非常に多いです。手作業でシートをコピーするのは簡単ですが、VBAを使えばそのプロセスを完全に自動化できます。 この記事では、Worksheet.Copyメソッ... -
【Excel VBA】シートをコードネームで操作する最も確実な方法
VBAで特定のシートを操作する際、Worksheets("シート名")やWorksheets(1)といった指定方法が一般的です。しかし、これらの方法はユーザーがシート名を変更したり、シートの順番を入れ替えたりすると、途端にマクロがエラーで止まってしまうという弱点があ... -
【Excel VBA】ワークシートの名前を変更する方法と命名規則の注意点
VBAで新しいシートを追加したり、既存のシートをコピーしたりすると、「Sheet1」や「データ (2)」のような仮の名前が付けられます。マクロの処理の一環として、これらのシートに「〇月度レポート」のような分かりやすい名前を自動で設定したい場面は非常に... -
【Excel VBA】ワークシートの順番を移動・入れ替える方法 (.Move)
VBAで新しくレポートシートを作成した際、そのシートをブックの一番左(先頭)や一番右(末尾)に移動させて、ユーザーが見つけやすいように整理したい、という場面はよくあります。 シートの順番は手作業でドラッグ&ドロップすれば変更できますが、VBAの... -
【Excel VBA】新しいワークシートを追加し、名前と位置を指定する方法
VBAで集計結果を出力したり、作業用の一時的なシートを作成したりと、マクロの実行中に新しいワークシートを追加したい場面は頻繁にあります。 Worksheets.Addメソッドを使えば簡単にシートを追加できますが、その名前を変更したり、ブックの特定の位置(... -
【Excel VBA】シートを選択・アクティブにする3つの方法と使い分け
VBAで複数のシートにまたがる処理を行う際には、まず「どのシートを操作するのか」を明確に指定する必要があります。これは、ユーザーが手作業でシートタブをクリックする操作に相当します。 VBAでシートを選択(アクティブ化)するには、主に**インデック... -
【Excel VBA】指定したセル範囲を画面いっぱいに拡大・縮小表示する方法
広大なワークシート上にある特定の表やグラフエリアだけを、ユーザーに注目して見せたい場合があります。手動でズームスライダーを調整するのは手間ですが、VBAを使えば、指定したセル範囲がウィンドウにぴったり収まるように、ズーム率を瞬時に自動調整す... -
【Excel VBA】Excelウィンドウの位置を自由に変更(移動)する方法
VBAマクロの実行中に、他のアプリケーションと画面を並べて表示させたい場合や、ユーザーに特定の情報を見やすい位置に提示したい場合など、Excelのウィンドウそのものの表示位置を動かしたいことがあります。 VBAを使えば、ウィンドウの画面上の座標(.Le... -
【Excel VBA】Excelウィンドウのサイズを自由に変更し、元に戻す方法
VBAマクロを実行する際に、特定のウィンドウサイズで見せたい、または複数のアプリケーションを画面に並べるためにExcelウィンドウの大きさを調整したい、といったニーズがあります。 VBAを使えば、Excelのウィンドウサイズをプログラムで正確にコントロー... -
【Excel VBA】ウィンドウ枠が固定されている位置(基準セル)を取得する方法
マクロを様々なExcelファイルで実行する際、そのファイルがどのように「ウィンドウ枠の固定」を設定しているかを知りたい場合があります。例えば、「ウィンドウ枠の固定を一旦解除し、処理後に元に戻す」といった丁寧なマクロを作成するには、元の固定位置... -
【Excel VBA】ウィンドウ枠を固定して、常に見出しを表示する方法 (FreezePanes)
データが縦横に長い大きな表をExcelで扱っていると、下にスクロールした時に見出し行が見えなくなったり、右にスクロールした時に項目列が見えなくなったりして、どのデータが何を示しているのか分かりにくくなることがあります。 Excelの「ウィンドウ枠の... -
【Excel VBA】「新しいウィンドウ」で開いた複製ウィンドウをすべて一括で閉じる方法
Excelの「新しいウィンドウを開く」機能は、複数のシートを同時に見比べる際に非常に便利ですが、作業が終わった後に Book1:1, Book1:2, Book2:1, Book2:2 ... のようにウィンドウが散らかってしまい、一つずつ閉じるのが面倒になることがあります。 VBAを... -
【Excel VBA】同じブックの2つのシートを左右に並べて同時表示する方法
入力用のシートと集計結果のシート、データシートとグラフシートなど、1つのExcelブック内で複数のシートを頻繁に行き来しながら作業することはよくあります。 Excelの「新しいウィンドウを開く」機能と「整列」機能を使えば、2つのシートを左右に並べて同... -
【Excel VBA】ウィンドウが分割されているか、またそのペイン数を確認する方法
Excelの「分割」機能を使うと、一つのワークシートを2つまたは4つの領域(ペイン)に分けて、それぞれを独立してスクロールできます。広大なシートの異なる箇所を同時に見比べたい場合に非常に便利な機能です。 VBAマクロで画面操作を自動化する際、ユーザ... -
【Excel VBA】同じブックの新しいウィンドウを作成して操作する方法 (NewWindow)
一枚のシートにデータを入力し、別のシートでその集計結果をリアルタイムで見たい、といった場合に、Excelの「新しいウィンドウを開く」機能は非常に便利です。これにより、同じブックを2つのウィンドウで同時に表示し、それぞれで異なるシートやセル範囲... -
【Excel VBA】手動計算モードでも保存直前に必ず再計算を実行させる方法
数式が大量に含まれる重いExcelファイルでは、動作を軽快にするために計算方法を「手動」に設定することがよくあります。しかし、この設定には「再計算(F9キー)を忘れて、古いデータのまま上書き保存してしまう」という大きなリスクが伴います。 VBAを使... -
【Excel VBA】開いているすべてのExcelブックを一括で上書き保存する方法
複数のExcelファイルを開いて同時に作業していると、最後に一つずつ保存を確認するのが面倒に感じることがあります。特に、新規作成しただけの未保存のブック("Book1"など)が混じっていると、それぞれに保存場所を指定する必要があり、手間がかかります... -
【Excel VBA】ブックに2種類のパスワードを設定して保存する方法
機密情報や重要なデータを含むExcelファイルを保護するために、パスワードを設定するのは一般的なセキュリティ対策です。VBAを使えば、このパスワード設定もSaveAsメソッドの一部として自動化できます。 Excelには、目的の異なる2種類のパスワード、「読み... -
【Excel VBA】「変更を保存しますか?」の確認メッセージなしでブックを閉じる方法
VBAでブックを閉じる(.Close)際に、もしそのブックに未保存の変更があると、Excelは「変更を保存しますか?」という確認メッセージを表示します。これによりマクロの実行が一時停止し、ユーザーの応答を待つ状態になってしまいます。これでは完全な自動...