mori– Author –
-
【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は「変更を保存しますか?」という確認メッセージを表示します。これによりマクロの実行が一時停止し、ユーザーの応答を待つ状態になってしまいます。これでは完全な自動... -
【Excel VBA】すべてのブックの変更を保存せずにExcelを終了する方法
複数のブックを開いて作業するマクロの最後に、Excelアプリケーションそのものを終了させたい場合があります。しかし、編集された未保存のブックが一つでもあると、Excelはブックごとに「変更を保存しますか?」という確認メッセージを表示し、マクロがそ... -
【Excel VBA】特定の条件でブックを閉じられないようにする方法 (BeforeCloseイベント)
入力フォームや申請書としてExcelファイルを使っている際、「ユーザーが特定のセルへの入力を忘れたまま、ファイルを閉じてしまう」のを防ぎたい、という場面があります。 VBAの**Workbook_BeforeCloseイベントを利用すれば、ブックが閉じられる直前に最終... -
【Excel VBA】別のブックのVBAマクロを実行する方法 (Application.Run)
VBAで開発を進めると、複数のファイルで同じような処理を使いたい場面が出てきます。そのたびにコードをコピー&ペーストするのは非効率ですし、修正があった場合にすべてのファイルを更新しなければならず、メンテナンス性が悪化します。 このような課題... -
【Excel VBA】ブックのプロパティ(作成者・作成日など)を読み書きする方法
Excelファイルの「プロパティ」には、作成者、タイトル、件名、作成日時といった、ファイルに関する付帯情報(メタデータ)が保存されています。これらの情報は、ファイル > 情報 の画面で確認できますが、VBAを使えばプログラムで自動的に読み取ったり... -
【Excel VBA】旧共有ブックを編集中のユーザー一覧を取得する方法
Excelの古いバージョンの「共有ブック」機能を使っている際に、「今、自分以外に誰がこのファイルを開いているんだろう?」と確認したくなることがあります。VBAを使えば、現在その共有ブックを編集しているユーザーの名前とログイン時刻の一覧を取得する...