フォーカスラインマクロ 導入マニュアル

この説明書は、Excelの画面上にセルの位置を追従する「フォーカスライン」を自分でセットアップし、リボンメニューにボタンを登録するための手順書です。

⚠️ 注意事項

マクロ導入に際しては、個人の責任で行ってください。
画面を最大化、移動した場合、ラインは追従しません。セルをクリックするとラインは再び追従します。
これは、エクセルの安定化・不用意なクラッシュ防止、大量の行数・列数のシートでのパフォーマンス維持のための仕様です。
ご了承ください。

差し替えファイルとして、上記仕様を変更した、画面変更時でも追従するバージョンを、テキストファイルとして同胞してあります。
ご使用の際は、後述の注意事項を参照してから使用してください。

ステップ 1. 「開発」タブを表示する

マクロの追加や編集を行うための「開発」タブをExcel画面の上部メニュー(リボン)に表示させます。

  1. Excelを開き、左上の [ファイル] ➔ [オプション] をクリックします。
  2. オプション画面の左側メニューから [リボンのユーザー設定] を選択します。
  3. 右側のリスト(メインタブ)の中にある [開発] のチェックボックスにチェックを入れます。
  4. 右下の [OK] を押します。

※これで、画面上部のタブに「開発」という新しいタブが表示されます。

ステップ 2. 個人用マクロブック(PERSONAL.XLSB)に登録する

どのExcelファイルを開いているときでもマクロが動くように、マクロプログラムを「個人用マクロブック」に登録します。

A. 個人用マクロブックを有効化する(初回のみ)

※すでに個人用マクロブックを作成済みの場合は、次の「B」へ進んでください。

  1. 新しく表示された「開発」タブを開き、[マクロの記録] をクリックします。
  2. 表示された画面の「マクロの保存先」を [個人用マクロブック] に変更して [OK] を押します。
  3. すぐに「開発」タブ内の [記録終了] を押します。

※これにより、PCの内部に個人用マクロブック(PERSONAL.XLSB)の枠組みが自動的に生成されます。

B. ドラッグ&ドロップで一瞬で登録する

マクロファイルをドラッグ&ドロップするだけで、コードのコピペやファイル名変更などの面倒な作業なしで登録が完了します。

マクロ入りのエクセル(.xlsm)からコピーして登録

  1. マクロが入っているエクセル(フォーカスラインマクロ.xlsm)を開きます。
  2. キーボードの Alt + F11 キーを同時に押して、VBAエディタ(開発画面)を起動します。
  3. 左上の「プロジェクト」ウィンドウ内で、開いたエクセルのプロジェクトから以下の3つのファイルを1つずつ、VBAProject (PERSONAL.XLSB) の文字の上に向けてドラッグ&ドロップ(引っ張って離す)します。
    • フォーム フォルダ内 ➔ frmRuler
    • クラスモジュール フォルダ内 ➔ clsAppEvents
    • 標準モジュール フォルダ内 ➔ modRuler
  4. VBAエディタの上部メニューにある保存アイコン(フロッピーディスクのマーク)をクリックして保存し、VBAエディタを閉じます。これで登録完了です!

ステップ 3. リボンメニューに登録する

ボタンをExcelの上部メニュー(リボン)の好きな場所に配置します。

  1. Excelの画面で、上部のタブ(どこでも可)を右クリックし、[リボンのユーザー設定] を選択します。
  2. 右側のリストで、ボタンを追加したいタブ(例:[ホーム] タブ)の左側にある「+」マークを押して展開します。
  3. ボタンを挿入したい位置にある既存のグループ(例:[編集] グループの隣など)を選択し、リストの下にある [新しいグループ] ボタンをクリックします。
    • リスト内に「新しいグループ (ユーザー設定)」という項目が追加されます。
  4. 追加された「新しいグループ」を選択した状態で [名前の変更] をクリックし、表示名を「ルーラー」などに変更して [OK] を押します。
  5. 画面左側の「コマンドの選択」のプルダウンメニューを [マクロ] に切り替えます。
  6. マクロ一覧から PERSONAL.XLSB!Ruler_SwitchOnOff を選択し、中央の [追加 >>] ボタンをクリックします。
    • ※これで、右側で作った「ルーラー」グループの中にボタンが登録されます。
  7. 右側に追加されたマクロを選択した状態で、下部の [名前の変更] ボタンを押します。
    • 好きなアイコン(水平線や格子、矢印など)を選択し、表示名を「ON / OFF」など分かりやすい名前に変更して [OK] を押します。
  8. 同様の手順で、表示切り替えマクロ(PERSONAL.XLSB!Ruler_ChangeMode)や設定マクロ(PERSONAL.XLSB!Ruler_Settings)もグループに追加し、それぞれ名前とアイコンをお好みに変更します。
  9. 右下の [OK] をクリックして設定画面を閉じます。
⚠️ 注意事項

Excelをすべて閉じる際、画面に「個人用マクロブック(PERSONAL.XLSB)への変更を保存しますか?」とダイアログが表示された場合は、必ず [保存] をクリックしてください。「保存しない」にしてしまうと、せっかく登録したマクロが消去されてしまいますのでご注意ください。


差し替えファイルについて

同梱のテキストファイル(フォーカスラインマクロ_追従版.txt)は、画面を最大化・移動した際にもラインが追従するバージョンのコードが記載されたテキストファイルです。
こちらのコードをコピーして、標準モジュール → modRulerへ丸ごと上書きしてください。
ただし、安定性やパフォーマンスの観点から、通常版の使用を推奨します。

変更箇所

  • Windows API のタイマー機能(SetTimer / KillTimer)を導入し、バックグラウンドで定期的に、 画面やセルの位置に変更がないかをチェックする監視処理を追加してあります。
  • 「アクティブセルの画面上絶対座標」「スクロール位置」「ウィンドウ位置」をキャッシュし、変更が生じた場合のみ UpdateRulerPosition を呼び出すように最適化しています。 また、セル編集モード中のクラッシュを防止する安全対策も組み込んでいます
  • コード変更の場合、ルーラーがON(タイマー作動中)の状態で、VBAエディタのデバッグボタン(リセットボタン等)を押してマクロを強制終了したり、 コードを大幅に書き換えたりすると、コールバック関数のメモリ参照がおかしくなり、Excelが警告なしに強制終了(クラッシュ)します。 コードの編集や、ブックの保存・終了を行う場合は、必ずあらかじめ Ruler_OFF を実行して、ルーラーおよびタイマーを完全に停止させてから行うようご留意ください。
  • 1. スクロール時の動作の「もたつき(遅延)」
    大容量ファイルでは、目的のデータを探すために高速でスクロールを繰り返す操作が多くなります。
    タイマーが作動していると、スクロール中も100ミリ秒(0.1秒)ごとに「画面上の位置が変わったか」の判定と再描画(APIによるフォーム移動)がバックグラウンドで走り続けます。
    これにより、Excel本来のスクロール動作にわずかな引っかかり(マイクロスタッター)が発生し、操作の快適性が損なわれる可能性が高くなります。
  • 2. 強制終了(クラッシュ)によるデータ消失リスク
    Excel VBAにおけるWindows APIタイマー(SetTimer)は、スレッドが不安定になりやすいという特性を持っています。
    特に大容量ファイルでは、Excel本体のメモリ使用量が増加し、再計算や描画の負荷が高くなります。
    そうした高負荷な状態(またはオートセーブが走った瞬間など)にバックグラウンドのタイマー処理が重なると、
    Excel自体が突然警告なしに強制終了(クラッシュ)するリスクが格段に上がります。苦労して編集したデータを失うリスクは、大容量ファイルほど致命的です。
  • 3. VBAのシングルスレッド制約
    VBAは基本的にシングルスレッド(一度に一つの処理しかできない仕様)です。
    タイマーによる監視がほんの一瞬であってもExcelの動作を遮り続けるため、大規模な関数の計算、フィルターの切り替え、並べ替えといった、
    Excelが本来得意とする重い処理のパフォーマンスを低下させる原因になります。

  • カンパのお願い

    このソフトウェアはフリーウェアとして提供されていますが、
    もしこのソフトウェアが役に立ったと感じたら、以下の方法でカンパをいただけると大変励みになります。
    コーヒー一杯分、お菓子代の一部、あるいは開発継続のための支援として、ご検討いただければ幸いです。

    免責事項

    本ソフトウェアの使用によって生じたいかなる損害についても、作者は一切の責任を負いません。
    自己の責任においてご使用ください。

    著作権・連絡先

    著作権者: lemles
    Web:https://youchiennaka.stars.ne.jp/
    連絡先: the.desert.of.the.real@gmail.com

    Copyright © 2026 lemles. All Rights Reserved.