0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Relaxtoolsの十字カーソルを外から呼べるようにする

Last updated at Posted at 2021-11-16

概要

Relaxtoolsという超有名なアドインの中に「十字カーソル」という視覚支援機能があるが、
image.png

同アドイン内のカスタマイズ機能から登録できるのは設定機能orz...
image.png

なのでこれをショートカットから呼び出したり他のマクロの(例えば検索結果を表示する)に付加できるようにした。

作り方

xmlを見てみるとリボンで呼んでいるプロシージャがこれだとわかったのでこれをアドイン外から呼べるようにする。

Sub lineOnAction(control As IRibbonControl, pressed As Boolean)

リボンを押すたびにOn/Offが切り替わる仕組みは細かくはわからないけどpressedTrue/Falseで切り替えてるっぽい。

あとはリボンのボタンから呼び出す用のおまじないcontrol As IRibbonControlをリボン外から呼ぶときにエラーになるので、同じ型の変数を用意して引数にぶち込む。(リボンを自作する場合はここをOptionalつけるとかで回避できる)

あとはおまけでActiveCell.EntireColumn.AutoFitを入れておけば巨大な表相手で列名が###となっていてもそこだけ読めるようになる。

コード

メイン

Sub 十字カーソル表示(有効化 As Boolean, 列幅AutoFit As Boolean)
  If 列幅AutoFit = True Then: ActiveCell.EntireColumn.AutoFit
  ' Relaxtoolsアドイン必要
  Dim control As IRibbonControl
  Dim pressed As Boolean
  Application.Run "RelaxTools.xlam!lineOnAction", control, 有効化
End Sub

呼び出す側:OnOff切替個別

Sub 十字カーソルOn()
  Call 十字カーソル表示(True,True)
End Sub

Sub 十字カーソルOff()
  Call 十字カーソル表示(False, False)
End Sub

呼び出す側:実行するたびにOnOff反転する

Sub 十字カーソルOnOff()
  Static 状態 As Boolean
  If 状態 = True Then
    Call 十字カーソル表示Off
    状態 = False
  Else
    Call 十字カーソル表示On
    状態 = True
  End If
End Sub

参考

他ブックのマクロを実行する

Application.Run "ブック名!Proc名",引数1,引数2,...

Relaxtools

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?