素人がアドインの世界に首を突っ込んでみる
素人、アドインに手を出す
アドインとは……?
「アドイン」って、よく聞く言葉だったけど、意味が分からんかったのでずっと放置していた。
何かの拍子に「マクロをアドインとしてうんたらかんたら」というのを読んで、ちょっと調べてみた。
そしたらアンタ、こういうのが見つかったのですよ。
作成したマクロを他のどのブックでも使用できるようにする方法です。アドインとして保存すると便利です。
何ーーーーッ! マジか!!!!!!!!
し、知らんかった……。
ということは、ですよ、
しちめんどくさい操作をアドインとして登録しておいて、クイックアクセスツールバーなんかにボタンを設置しておいたらメッチャ楽
つうことですよね?
何ということだ……。そんなこと知らんかったから、今までめんどくさい文字列処理なんかは、それ専用のマクロ入りブックを立ち上げていたんだけど……。
なんちゅうムダなことをやってたんだw
マクロのアドイン化に挑戦
というわけで、やってみた。
サンプルコードは次のリスト1を使う。
リスト1 標準モジュール
Option Explicit Public Sub convertToNarrowWhenAlphaNumeric() Dim objCell As Range For Each objCell In Selection objCell.Value = checkAndConvert(objCell.Value) Next End Sub Private Function checkAndConvert( _ ByVal tgtString As String) As String Dim i As Integer Dim str As String Dim chr As String Dim tmp As String str = StrConv(tgtString, vbWide) tmp = "" For i = 1 To Len(str) chr = Mid(str, i, 1) If chr Like "[0-9]" Or _ chr Like "[A-z]" Or _ chr = "-" Or _ chr = "&" Then chr = StrConv(chr, vbNarrow) tmp = tmp & chr Next checkAndConvert = tmp End Function
今回はコードの説明は省略。リクエストがあったらやりますのでヨロシク。
選択範囲のセルの文字列について、英数字及び「-」(ハイフン)、「&」(アンパサンド)については半角に統一する、というマクロですな。
コイツをアドインとして登録し、いつでも使えるようにしようという算段。
手順
まずは、上記のコードを標準モジュールに書く。
んで、「名前を付けて保存」ダイアログ・ボックスを呼び出し、
「ファイルの種類(T)」を「Excelアドイン(*.xlam)」にして保存
する。
保存場所は、自動的に
C:\Users>ユーザー名>AppData>Roaming>Microsoft>AddInsフォルダ
が選ばれる。
ファイル名は日本語にしておくのが分かりやすいかな。画像では「英数記号半角統一」にしてあります。
これでExcel本体への登録はおk。不安になるぐらい簡単です。
お次は、登録したアドインを使えるようにする。
「ファイル」タブから、
「オプション」→
「アドイン」へと進む。
下の方に「管理(A)」というところがあるので、ドロップダウンリストから「Excelアドイン」を選んで「設定」をクリック。
アドインというウインドウが出てくるので、先ほど保存した「英数記号半角統一」にチェックを入れて
[OK]をクリック。これで使用準備は完了。
あとは、呼び出し方を設定するだけ。
今回は、クイックアクセスツールバーから呼び出すことにする。
「ファイル」タブをクリック→「オプション」へと進む。
「クイックアクセスツールバー」をクリック。
右側の画面にこんなのが出てくるので、「コマンドの選択」ドロップダウンリストから「マクロ」を選ぶ。
下段のボックスの中に、マクロ名が表示されるので、(今回の例の場合なら)「英数記号半角.xlam」に書かれている方のプロシージャ名を選択し(マウスポインタを当てると、ファイルフルパスがヒントで表示されるので見分けられる)、
[追加]ボタンをクリック。
右側のボックスに追加されている。
「アイコン、だっせぇよな!」と思ったら、
下の方にある[変更]ボタンをクリックすると、
「ボタンの変更」ウインドウが表示されるので、カッコいいアイコンに変更すればおk。
アイコンがカッコよくなった。
元の画面に帰ると、
クイックアクセスツールバーにカッコいいアイコンがw
これで準備おkです。
いざ実行。
対象のセル範囲(よく見ないと分からないかも知れませんが、英数記号部分は全角・半角がチャンポンになっていて、かなりイラッと来るものとなっています)を選択して、
カッコいいアイコンwをクリック!
英数記号が半角で統一されました。
おわりに
今回例として使用した「英数記号全角半角統一」マクロは、コチラの『実例で学ぶExcelVBA(講談社ブルーバックス B1802 立山秀利著)』がもとになっています。私がVBAに目覚めるきっかけとなった、大変ありがたい本です。密林での評価は前作の『入門者のExcelVBA(講談社ブルーバックス B1769 著者同じ)』の方が高いようですけど、どう考えても『実例で~』の方が上だと思っています。
手数の多い文字列処理なんかは、マクロで作っておいてアドインにすると便利かも。特に、いろんなところから集まってくるExcelブックを集約するような仕事のときには、こういうデータクレンジング系のマクロをアドインとして放り込んでおくと楽になるでしょうね。