VBA – ウィンドウ枠を固定する

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

VBAを使ったウィンドウ枠の固定

先日、Excelのウィンドウ枠の固定について投稿しましたが、VBAを使った方法を紹介します。

先頭行を固定する


Rows("1:1").Select
ActiveWindow.FreezePanes = True

先頭列を固定する


Range("A:A").Select
ActiveWindow.FreezePanes = True

行と列を固定する


Range("B2").Select
ActiveWindow.FreezePanes = True

ウィンドウ枠の固定を解除する


ActiveWindow.FreezePanes = False

ウィンドウ枠を固定したままではワークブックを保存できないようにする

Excelでは、イベントによって物事をコントロールすることができます。この記事では、イベントの種類や機能についての詳細な議論をするわけではありません。その代わり、ワークブックのイベントの例を挙げます。これらは、特定のワークシートではなく、ワークブックレベルで保持されるイベントです。

VBAを通じて、印刷前や保存前など、特定のイベントで何が起こるかを制御することができます。私が直面している共通の問題の1つは、一緒に仕事をしている多くの人が、ウィンドウ枠が固定されたシートのあるファイルを好まないということです。

そこで、この記事では、ウィンドウ枠が固定されているかどうかをチェックし、固定されていればファイルを保存しないようにするコードをいくつかまとめます。つまり、私はウィンドウ枠の固定が解除された状態でファイルを保存しなければなりません。

ワークブックイベントに関して最も重要なことは、正しい場所(ワークブックレベル)に保存することです。

ワークブックレベルのコードにアクセスするには、次の手順に従ってください。

1.  Excelワークシートタブの上で右クリックし、[コードの表示]を選択します。

freeze panes

2. Visual Basic Editorが表示されます。

freeze panes

3. ThisWorkbookをダブルクリックし、右側のコードペインの1つ目のドロップダウンからWorkbookを選択します。

freeze panes

すると右側のドロップダウンの値がOpenに変わり、Workbook_Open イベントのコードが表示されます。このコードによって、ワークブックが初めて開かれたときに何が起こるかを確認することができます。

しかし、今回はワークブックを保存するときの動作を制御したいので、右側のドロップダウンをBeforeSaveに変更します。すると、画面は次のようになります。

freeze panes

ここで、宣言の後に以下のコードを挿入します。

If ActiveWindow.FreezePanes = True Then

    MsgBox "ウィンドウ枠が固定されています - ファイルは保存されません"

    Cancel = True

End If

これで、完全なコードは次のようになる。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If ActiveWindow.FreezePanes = True Then

    MsgBox "ウィンドウ枠が固定されています - ファイルは保存されません"

    Cancel = True

End If

End Sub

ファイルを保存した後、任意のウィンドウでフリーズペインを有効にします。その状態でファイルを再保存しようとしても、msgboxにウィンドウ枠が固定されていることが表示され、ファイルは保存されません。

freeze panes

そしてウィンドウ枠の固定が解除されるまで、ファイルは保存できないままになります。

VBAのコーディングが簡単に

VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderは、初心者が最小限のコーディング知識でゼロからコーディングできるだけでなく、すべてのユーザーにとって時間を節約するのに役立つ多くの機能を備えています! alt text もっと詳しく

<<VBAのサンプルに戻る

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples