Excelツールバーにマクロを登録する

普段よく使うマクロはすぐに使用できるようツールバーに登録してます。

作り方の手順を簡単に説明します。

1  まずツールバーにアイコンを設定します。

メニューバーの「表示」→「ツールバー」→「ユーザー設定」を選びます。
メニューバーの「表示」→「ツールバー」→「ユーザー設定」を選びます。
ユーザー設定から「コマンド」タブの「マクロ」を選択します。
ユーザー設定から「コマンド」タブの「マクロ」を選択します。
コマンドタブのマクロを指定した後、「ユーザー設定ボタン」を左クリックしたままツールバーまでドラッグします。
コマンドタブのマクロを指定した後、「ユーザー設定ボタン」を左クリックしたままツールバーまでドラッグします。
ツールバーの任意の場所で左クリックを解除し、指を離します。
ツールバーの任意の場所で左クリックを解除し、指を離します。
ツールバーにアイコンが表示されたら「選択したボタンの編集」をクリックします。
ツールバーにアイコンが表示されたら「選択したボタンの編集」をクリックします。
名前ボックスに好きな名前を登録し、「テキストのみ表示」をクリックします。
名前ボックスに好きな名前を登録し、「テキストのみ表示」をクリックします。
ツールバーのアイコンが入力した文字に変わります。これに「マクロの登録」をクリックしてマクロを貼り付けます。
ツールバーのアイコンが入力した文字に変わります。これに「マクロの登録」をクリックしてマクロを貼り付けます。
登録したマクロの一覧が表示されますので、目的のマクロを探します。
登録したマクロの一覧が表示されますので、目的のマクロを探します。
目的のマクロをクリックします。
目的のマクロをクリックします。
マクロの登録が終わったら、クリックしてみます。
マクロの登録が終わったら、クリックしてみます。
現在つながっているアクティブなプリンター名が表示されました。
現在つながっているアクティブなプリンター名が表示されました。

マクロの内容は

 

 Sub プリンター確認()

        MsgBox ActivePrinter

 End sub

 

という、至極簡単なプログラムです。このような手順で普段よく使うマクロをツールバーに登録しておくと、仕事がはかどります。

 

ちなみに

 

Sub 検算()
Dim myRng As Range
    Set myRng = ActiveWindow.Selection

    MsgBox "合計は、" & Application.WorksheetFunction.CountA(myRng) & "個 :" & " " _
        & Format(WorksheetFunction.Sum(myRng), "#,##0") & "円です。"

    Set myRng = Nothing
End Sub

 

は、選んだセルの個数と数値合計を円単位付きで計算してくれるので、検算に便利です。ツールバーでは電卓のアイコンに登録してます。

 

また、作業中Enter後にセルの移動を変えたいときは矢印アイコンにそれぞれ動きを登録してます。

ソースコードは上から順に

Sub Enter右移動()
Application.MoveAfterReturnDirection = xlToRight
End Sub

 

Sub Enter下移動()
 Application.MoveAfterReturnDirection = xlDown
End Sub

 

Sub 上へ()  '一気に上に戻りたいときお好みのセルを指定します
       Range("A1").Select
 End Sub

 

Sub 最下行() ’列名をinputboxに入力するとその列の入力された最下行に移動します
Dim i As String
    i = InputBox("列名を入力してください。")
On Error GoTo myerr
    Range(i & "65536").End(xlUp).Select
  Exit Sub
myerr: MsgBox "キャンセルされました。"     
End Sub

 

です。また、特に便利に使っているのが作業の途中でWeb検索したいとき、いちいちInternetExplorerを開かなくても、どこか開いたところにキーワードを打ち込み、打ち込んだセルを指定して地球アイコンを押します。すると自動で検索してくれます。なかなか便利ですよ!ソースコードは以下の通りです。解説本に載ってるのを参考に作りました(^^;

Sub Web検索()
  Dim a As String
    a = ActiveCell.Value
    Call Yahoo検索(a)
    ActiveCell.Value = ""
End Sub

 

Sub Yahoo検索(keyWD)  
  Dim objIE As Object
  Dim strURL As String   
    Set objIE = CreateObject("InternetExplorer.Application")
    strURL = "http://www.yahoo.co.jp/"
    With objIE
        .Visible = True
        .Navigate2 strURL
        Do While .Busy = True  'Webページが読み込み中かどうかを示します
            DoEvents           '処理の途中にオペレーティングシステムに制御を移すための関数 "http://www.vba-ie.net/function/doevents.html"
        Loop
        Do While .document.ReadyState <> "complete"  'IEオブジェクトのドキュメントの読み込み状態を示します "http://www.vba-ie.net/ieobject/readystate.html#a1"
            DoEvents
        Loop
        .document.getElementById("srchtxt").Value = keyWD
        .document.forms(0).Submit
    End With
End Sub


2007以降のバージョンはメニューバーがリボンになったため、直接ツールバーには登録できないみたいです。で、アクセスツールバーに登録して使っています。アイコンもテキスト表示ができないので、この点がちょっと不便です。

2007はツールバーに登録できないので、アクセルツールバーに登録しました。
2007はツールバーに登録できないので、アクセルツールバーに登録しました。

Excelは米国MicroSoft Corporationの登録商標です。