VBA樹林– category –
-
【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を使えば、現在その共有ブックを編集しているユーザーの名前とログイン時刻の一覧を取得する... -
【Excel VBA】ブックの保護状態(シート構成・ウィンドウ)を確認する方法
マクロで新しいシートを追加しようとしたり、ウィンドウサイズを変更しようとしたりした際に、「ブックが保護されているため、操作を実行できません」というエラーに遭遇することがあります。 このようなエラーを未然に防ぐためには、処理の実行前にブック... -
【Excel VBA】ブックを保存する3つの方法(Save/SaveAs/SaveCopyAs)の違いと使い分け
VBAでブックへの処理が完了したら、最後は必ず「保存」の操作が必要になります。しかし、VBAには.Save、.SaveAs、.SaveCopyAsという3つの似たような保存メソッドがあり、これらの違いを正確に理解しないと、意図せず重要なファイルを上書きしてしまうなど... -
【Excel VBA】拡張子を除いたファイル名のみを取得する2つの方法 (Split / InStrRev)
VBAでファイル名を扱う際、「Report.xlsx」というフルネームから拡張子.xlsxを取り除き、「Report」というベース名だけを取得したい、という場面は頻繁に発生します。例えば、同じ名前で新しいフォルダを作成したり、テキストファイルを出力したりする場合... -
【Excel VBA】ブックのフルパス(保存場所とファイル名)を取得する3つのプロパティ
VBAマクロで、処理中のブックと同じフォルダに新しいファイルを出力したり、開いているファイルの場所をログに記録したりする際には、そのブックの「フルパス」(ファイルの場所と名前を合わせた完全なパス)を取得する必要があります。 VBAには、このパス... -
【Excel VBA】Workbook_Openなどの自動実行マクロを無効にしてブックを開く方法
VBAで他のブックを開く際、そのブックにWorkbook_Openイベントが設定されていると、ファイルを開いた瞬間に意図せずそのマクロが実行されてしまいます。データを読み書きしたいだけなのに、メッセージボックスが表示されたり、想定外の処理が始まったりし... -
【Excel VBA】マクロで開いたブックを「最近使ったアイテム」の履歴に追加する方法
VBAマクロで特定のファイルを開く処理を自動化した場合、通常そのファイルはExcelの「最近使ったアイテム」の一覧には追加されません。しかし、マクロで使ったファイルを後で手動で開きたい時に、履歴に残っていると非常に便利です。 この記事では、Workbo... -
【Excel VBA】「リンクの更新」メッセージを表示させずにブックを開く方法
他のExcelファイルへの参照リンクが含まれているブックをVBAで開こうとすると、「このブックには、他のデータソースへのリンクが含まれています。」というメッセージが表示され、マクロが一時停止してしまうことがあります。これでは、完全な自動化は実現... -
【Excel VBA】ブックの自動保存をVBAでオン/オフする方法 (.AutoSaveOn)
Microsoft 365のExcelでは、OneDriveやSharePointに保存されたファイルに対して「自動保存」が標準でオンになっています。これは共同編集や不意のシャットダウンに非常に便利な機能ですが、VBAマクロで大量のデータを処理する際には、一つ一つの変更が即座... -
【Excel VBA】ブックの状態を確認する方法(読み取り専用・互換モード)
VBAマクロを実行する際、対象となるExcelブックがどのような状態で開かれているかによって、処理を分岐させたり、エラーを未然に防いだりする必要が出てくることがあります。 特に重要なのが、「このブックは編集可能なのか?」や「古いファイル形式ではな... -
【Excel VBA】パスワードで保護されたExcelブックを開く方法
VBAで他のブックを操作する際、対象のブックが「読み取りパスワード」で保護されているケースがあります。このようなブックも、VBAを使えばパスワードを自動で入力して開くことが可能です。 この記事では、Workbooks.OpenメソッドのPassword引数を使った基... -
【Excel VBA】ファイルパスを指定して既存のブックを開き、操作する方法
VBAでマクロを組む上で、「別のExcelファイルを開いて、そこからデータを読み取りたい」または「処理結果を別のファイルに書き込みたい」といったブックをまたいだ操作は頻繁に発生します。 この記事では、VBAで指定したパスにある既存のExcelブックを開き... -
【Excel VBA】ThisWorkbookとActiveWorkbookの決定的な違いと正しい使い分け
Excel VBAでコードを書き始めると、多くの人がThisWorkbookとActiveWorkbookという2つのキーワードに遭遇します。これらはどちらもブックを指しているように見えますが、その意味は全く異なり、この違いを理解していないと、意図しないブックを操作してし... -
【Excel VBA】新規ブックを追加し、オブジェクト変数で確実に操作する方法
VBAでデータを集計し、その結果を新しいブックにまとめて保存する、といった処理は非常に一般的です。このとき、「Workbooks.Addで新しいブックを作ったはいいが、そのブックをどうやって正確に操作すれば良いのか?」という問題に直面することがあります... -
【Excel VBA】複数のExcelブックを切り替えて操作する2つの方法
VBAで複数のExcelファイル(ブック)にまたがる処理、例えば「データブックから集計ブックへ値をコピーする」といったマクロを作成する際には、操作の対象となるブックを正確に切り替える必要があります。 VBAで特定のブックをアクティブにする(最前面に... -
【Excel VBA】シート上の全グラフを個別の画像ファイルとして一括保存する方法
Excelで作成した複数のグラフを、PowerPointの資料やWebサイトで使いたい場合、一つずつ右クリックして「図として保存」を繰り返すのは非常に手間がかかります。 VBAを使えば、シート上にあるすべてのグラフを、それぞれのグラフタイトルをファイル名とし... -
【Excel VBA】シートをPDFファイルとして出力(エクスポート)する方法
作成したExcelの資料を、他の人に共有したり、証憑として保存したりする際には、レイアウトが崩れず、誰でも開けるPDF形式に変換するのが一般的です。手作業でもPDF化は可能ですが、VBAを使えばこの操作をボタン一つで自動化できます。 この記事では、VBA... -
【Excel VBA】特定の条件を満たさないと印刷できないように制限する方法 (BeforePrintイベント)
「承認者の名前が入力されていないと印刷させたくない」「特定の日付が入力されるまで、このシートは印刷禁止にしたい」など、Excelファイルに特定のルールを設け、それを満たさない限り印刷できないように制御したい、というニーズは少なくありません。 V... -
【Excel VBA】印刷設定の処理を高速化する鉄板テクニック (PrintCommunication)
印刷範囲や用紙の向き、余白など、VBAでPageSetupに関する設定を変更するマクロを実行した際に、「処理が思ったより遅い…」と感じたことはありませんか?特に、ネットワーク上のプリンターを使っているとその遅さは顕著になります。 実はその原因、VBAが印... -
【Excel VBA】印刷するプリンターを選択・切り替える2つの方法
VBAで印刷処理を自動化する際、社内に複数のプリンターがあったり、PDFとして出力したりと、状況に応じて出力先を切り替えたい場合があります。 VBAを使えば、「マクロ実行時にユーザーがプリンターを選べるようにする」ことや、「特定のプリンターに固定... -
【Excel VBA】行番号・列番号や枠線を含めてシートを印刷する方法
Excelのシートを印刷する際、分析やレビューのために「A, B, C...」といった列番号や「1, 2, 3...」の行番号、またセルの区切りを示す薄い灰色の枠線(グリッド線)も一緒に印刷したい、という場合があります。 これらの設定は通常、「ページレイアウト」... -
【Excel VBA】印刷総ページ数を取得する方法と改ページの点線を非表示にする方法
Excelで作成した資料を印刷する前に「全部で何ページになるか」をマクロで取得したり、編集作業中に表示される「改ページの点線が煩わしい」と感じたりすることはありませんか? VBAを使えば、これらの情報を簡単に取得・操作することが可能です。この記事... -
【Excel VBA】印刷時の改ページ位置を一定間隔で自動設定する方法
大量のデータが入力されたExcelシートを印刷すると、意図しない場所で改ページされてしまい、表の途中で切れて見づらくなってしまうことはありませんか? 手作業で一つずつ改ページを設定するのは、データ量が多いと非常に手間がかかります。 VBAを使えば... -
【Excel VBA】印刷時のヘッダー・フッターを自由自在に設定する方法
Excelで作成した帳票やレポートを印刷する際、各ページに「文書のタイトル」「日付」「ページ番号」「ファイル名」などを記載するヘッダーやフッターは欠かせません。これらの設定を手作業で行うのは手間がかかりますが、VBAを使えば定型的な設定をすべて... -
【Excel VBA】印刷を自動化する4つの基本パターン(シート・ブック・範囲指定)
定型的なレポートや資料を作成する際、毎回同じシートやセル範囲を選択して印刷するのは手間がかかります。VBAを使えば、「印刷」ボタン一つで、決まった対象を、決まった設定で印刷する処理を自動化し、作業効率を大幅に向上させることができます。 この... -
【Excel VBA】Excelのセル範囲をJSON形式に変換して出力する方法
Web APIとの連携や、最新のWebアプリケーションでデータをやり取りする際、**JSON(JavaScript Object Notation)**形式のデータが標準的に使われます。Excelで管理しているデータを、このJSON形式に変換して出力したい、というニーズは年々高まっています...