列の見出し表示「ABC…」を、「123…」に切り替えるマクロを紹介します。
↓こういう仕様のマクロです。
⇅ 実行するたびに切り替わる
Cells(R, ○)
↑この○に入る数字を指折り数えなくて済むためのスイッチですね。
実行型の便利マクロですので、
Excel起動時に裏で開かれる「個人用マクロブック」などに搭載して使ってください。
切り替え系のマクロは何回も押しますので、ショートカットキーに登録したり、ツールバーやリボンにボタン配置すると便利です。
はじめに:Cellsはアルファベットでも動きます
今回のマクロは、「AE列って何番目?」を調べるためのマクロですが、
これ、実は調べなくても、
Cells(1, "AE") ' ← AE1セルを取得 Columns("AE") ' ← AE列を取得
と、普通にアルファベットを渡してもCells・Columnsプロパティは動かせます。
もちろん数字がほしい場面は多いので今回のマクロも便利なのですが、
アルファベットのままの方が見やすいという場面も当然あります。
この書き方ができる事をちゃんと知っておき、
その上で「数字で書いた方がいい場面」で、今回のマクロは使ってください。
では始めます。
ソースコード
Sub 列見出し表示をABC⇔123で切り替える() If Application.ReferenceStyle = xlA1 Then Application.ReferenceStyle = xlR1C1 Else Application.ReferenceStyle = xlA1 End If End Sub
コードの解説
ものすごく短いコードですね。
Application.ReferenceStyleを「xlA1」「xlR1C1」でスイッチしているだけです。
Application.ReferenceStyle とは参照形式を変更するオプションで、
↑これのことです。
これにチェックを入れると、セルの参照形式がいつものA1形式からR1C1形式に変わり、例えばA列に入れた↓の数式が、
A1 | =SUM(A2:A10) |
---|
⇩
R1C1 | =SUM(R[1]C:R[9]C) |
---|
こう変わったりするのですが、
ぶっちゃけR1C1形式はどうでもいいので解説は割愛します。
大事なのは「参照形式をR1C1にしている間は列の見出し表示が123になること」ですからね。
R1C1形式の数式は見づらいだけなので、マクロを書き終わったらさっさといつものA1形式に戻してください。
R1C1形式とは何ぞやを知る必要は(今回は)ありません。
今回のマクロは、リボンとかクイックアクセスツールバーにボタンを置いておき、
- マクロを書いているときは表示を123に切り替えてコーディング
- シートをいじるときは表示をABCに戻す
ような感じで使ってください。
余談ですが、このマクロのSubプロシージャ名を
Sub 列見出し表示をABC⇔123で切り替える()
としていることは結構大事なポイントです。
ストレートに処理内容で命名すると、
Sub 参照形式をR1C1⇔A1で切り替える()
と書いてしまいそうになりますが、これはあくまで「手段」の話です。
コードを読む際は「何をやっているコードなのか」を読み解くことが重要になるため、
関数・変数・コメントには、手段ではなく「目的」を書くようにしましょう。
手段はコードを見ればわかりますが、目的はコードを読み解かないとわかりませんからね。
今回のA1⇔R1C1切り替えなんて、まさに「初見だと手段はわかっても目的がわからないコード」の代表例です。
後で読み返したときに
「これなんで数式の表示変えてるんだろ?」
とならないように、何がしたかったのかを記しておきましょう。