眼球「Excelのシート名下すぎ。」

作業効率のためのMicrosoft Excelのショートカットキー設定
~アドインを作ってショートカットキーをカスタマイズ

仕事量というのは、単純な時間ではなく工数です ここを見るような人は言葉の意味は分かっていると思いますが、1日で1人日(=8時間分)(日本では 外国は知らんw …まぁ、それでも長すぎ)やればいいんです 作業効率上げて4時間で糞つまらん仕事終わらせれば、あとの4時間は呆けながら休日の予定を考えていればいいんです まぁ当たり前ですね

Excelマクロで VBA を使い始めたはいいけど何をどうすればいいかわからない!という方のために、『VBAでマクロ作成→アドインとして保存→アドイン設定』の一連の流れを書こうと思います。解説サイトはたくさんありますが、これを見て少しでも助けになれば幸いです。(最低限Visual Basicのエディタを使っている人向けです。)

ここではシート名を変更するためのショートカットキーを設定するアドインを作ります。Excelショートカットメニューキーで紹介していますが、非常に覚えにくい!忘れやすい!右手を動かす必要があるのもマイナスポイント。サイト検索するとクイックアクセスツールバーに登録するという方法も考えられていますが、どちらにせよ一番の問題があります。
シート名下すぎ。
くそっ!ビル・ゲイツめ!いちいち眼球を動かさないといけないだろうが!


1. Excelマクロ有効ブックを作成
 説明するまでもないと思いますが、拡張子がxlsmのExcelファイルを作成して下さい。普通のExcelファイルを作成してから、名前を付けて保存すればOKです。
 Excelアドインファイルは別の拡張子で保存するのですが、そのファイルで作業するのではなく、マクロ有効ブックで最終的に完成した物をアドインファイルとして保存しなおします。


2. シート名変更マクロ作成
 ここで本当はシート名入力欄の小窓を表示するようにユーザーフォーム(UserForm)を作成し、テキストボックスやボタンの配置・設定・コード記載を書こうと思ったのですが、もっと簡単な方法がありましたので、今回は簡単な方で解説していきます。

 CommandBarControlというメインメニューやら右クリックメニューやらのオブジェクトがあるのですが、この記事を書くまではシート名変更はどれなのかちゃんと探していませんでした なぜなら、それを見つけて実行しても下すぎなシート名変更が変わらないから… ふむふむ、CommandBarの名前は"Ply"?なんやそれ、"Sheet"とかとちゃうんか どうりで見つけ難いわけだ これ、シート名右クリックのコントロールと違う、のか? …まぁいいや、名前変更のCommandBarControlのIDは889っと さて、一応実行してみるか~
    _, ,_
!?(;゜д゜) …おい、Illuminatiの使いっパシリのBill Gates 自分だけこれを使って善良な一般市民が眼精疲労に苦しんでいるのをほくそ笑んでいたんか

 標準モジュールを新たに追加して、プロシージャを作成します。名前はモジュールをModule1、シート名変更のプロシージャをChangeSheetNameとでもします。

Public Sub ChangeSheetName()
    CommandBars("Ply").FindControl(ID:=889).Execute
End Sub


3. ショートカットキー設定
 特定のキーが押された時にプロシージャを実行するよう設定する「Application.OnKey」というメソッドがあります。詳しくはヘルプを見て頂くとして、上記シート名変更プロシージャを「Ctrl+Alt+s」で実行できるようにするには、

Application.OnKey "^%s", "Module1.ChangeSheetName"

 第一引数がキー設定で、「^」がCtrl、「%」がAltキーを表しています。このキー設定をアドイン登録時に必ず実行されるようにしないといけません。


4. アドイン登録で実行されるように
 今作成しているこのマクロ有効ブックがアドインに登録された時に発生するイベントに、キー設定メソッドを登録します。ThisWorkBookオブジェクトに以下のコードを追加します。

Private Sub Workbook_AddinInstall()
    Application.OnKey "^%s", "Module1.ChangeSheetName"
End Sub

Private Sub Workbook_AddinUninstall()
    Application.OnKey "^%s"
End Sub

Private Sub Workbook_Open()
    Application.OnKey "^%s", "Module1.ChangeSheetName"
End Sub

 イベントは上部のプルダウンメニューから選択もできます。

 ここで注意すべきことは、アドイン登録後にExcelを起動するたびに発生するイベントは「Openイベント」だということです。くそっ!Bill Ga(略


5. ブックの保存
 作成したマクロ有効ブックは上書き保存しておき、さらに別名でファイルの種類を「Excel アドイン (*.xlam)」にして保存します。なお、保存先は現ユーザのアドイン格納フォルダに自動的になっているはずですので、そのまま保存します。


6. アドイン登録
◆Excel 2007
 オプションからアドイン設定にいけます。

◆Excel 2010以降
 VBエディタを起動したリボンの開発タグにアドインがあります。COMではない方のアドインを選択して下さい。

 ファイル名と同じものが有効なアドイン一覧にあるので、チェックしてOKを押下し、登録して下さい。


 これでExcelファイルを開けば、「Ctrl+Alt+s」でシート名変更のマクロが有効になります。