Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【Excel/VBAのこと54】列番号を表示させる Selection.column/Split

   f:id:tuna-kichi:20200223230814p:plain

 

こちらの記事で列の表示をアルファベットから数字の表示をワンクリックで変更するマクロを紹介しました。

 

www.tuna-kichi.com

 

私は、マクロを作るとき、Cells(1,2) と記載することが多いので、数字の方が都合が良いのです。

 

しかし、Vlookup などの関数を入力するときはアルファベットでないと読めないのです・・・

 

いくら、ワンクリックで表示を変えることができるとしても、いつも交換していると面倒なんです・・・

 

ちょっとだけ確認したいときもあるんです。
例えば、列を追加しないことがわかっている表なんかの場合は、
最終列を検索せず、そのまま列番号を入力してしまう方が早楽なのです。

 

そこで、メッセージボックスに表示させることにしてみました。

 

**********

マクロ

Sub 列番号表示1()

    MsgBox Selection.Column _・・・①
            & vbNewLine & vbNewLine _
            & Split(Selection.Address, "$")(1)・・・②


End Sub

 

①列を数字で表示
②列をアルファベットで表示

  Msgbox

 

こんな感じになりました。

こうすれば、いちいち全部の表示を変えなくてもすぐに確認ができます。

 

しかし・・・
ここでまた面倒くさい病が発症してしまいました・・・

 

OKボタン押さずに数秒後に勝手に消えてくれないかな・・・・

 

調べてみたら、ありました。

でも、Msgbox を自動で消去する方法は私には少々ハードルが高い・・・

記述はそんなに難しくなかった気がするのですが、

理解できていないのに使うのは、なぜか抵抗がある・・・

 

そこで、フォームを作成してそのフォームを3秒後に閉じる

という方にしてみました。

 

フォームはこんな感じです。

見づらいかもしれませんが、ラベルが2つ。

上下に並んでいて、上は数字、下はアルファベットで表示させるようにします。

  フォーム

 

**********

マクロ

’フォーム起動時に各ラベルに列番号を表示させる

Private Sub UserForm_Initialize()

    lblNumber.Caption = Selection.Column
    lblAlphabet.Caption = Split(Selection.Address, "$")(1)

End Sub

-----------------------------------

’この記述で3秒後に指定のフォームを閉じることができる

Private Sub UserForm_Activate()・・・③

    Application.Wait (Now + TimeValue("00:00:03"))・・・④
    Unload frmColumnNo・・・⑤

End Sub

 

③これ初めて見ました。
というか、こんなものがあるのか と気が付きました。

ここに記述したものはフォーム起動中に実行する指示・・・だと思います。

フォームアクティベイト

④この記述で待ち時間を指定できます。

⑤フォームを閉じます。

 

3秒あれば、選択している列番号を確認できます。
そして、勝手に閉じます。

  大きい数字でも確認できる

 

 

 

_/_/_/_/_/_/_/_/_/_/_/

 

 

 

個人用マクロブックについてはこちら

リボンに登録についてはこちら

_/_/_/_/_/_/_/_/_/_/_/_/_/_/