Excel マクロの登録

わずかな知識で VBA!

Excel マクロの登録


マクロの登録


  マクロを登録する

   Excel VBAのマクロの実行方法の一つを「マクロの記録」で説明しましたが、

  毎日使用するマクロは、ツールバーや、コマンドボタンにマクロを登録して、

  もっと便利に実行できるようにします。

  ここではフォームコントロールのコマンドボタンへのマクロの登録や、

  挿入した図形等へのマクロの登録方法

  また、もっと便利なマクロの登録方法も紹介しています。

  ActiveXコントロールのコマンドボタンへのマクロの登録は、

  ActiveXコントロールのページをご覧ください。


          ActiveXコントロール


わずかな知識で
VBA!






  1. ワークシート上に設置したコマンドボタン(図形)へのマクロの登録

    Excel2007

      この作業をExcel2007で行うためには、リボン(昔のツールバー)に「開発」タグを追加する必要があります。

      「開発」タグの追加方法

       


    2. 表示されたダイアログボックスの下方にある「Excelのオプション(I)」をクリックします。

       

   4. チェックマークが入っていることを確認して、「OK」ボタンをクリック、
     これで、リボンに開発タグが追加されます。

 

  「フォーム」ツールバーの「ボタン」へのマクロの登録。


   

   2. 表示されたメニュー図形のなかから、「フォームコントロール」の中で一番左上の「ボタン」をクリックします。

     「ActiveX コントロール」の方ではないので、注意してください。

     

   5. ボタンを右クリックして、その状態でボタンのテキスト部分を左クリックするか、
    「テキストの編集(X)」をクリックしてボタンに表示させるタイトルを編集します。

    入力が済んで、「Enter」キーで確定しようとすると改行され、ボタンの高さによっては
    入力したタイトルが見えなくなってしまうので、ボタン以外のセルをクリックしてタイトルを確定します。

    誤ってEnterキーを押してしまった場合は、「Backspace」キーを押せば修正できます。

    ボタンは、「Alt」キーを押しながらドラッグするとセルの枠線に合わせて作成することができます。

    挿入した図形に登録する場合は、図形を右クリックし、「マクロの登録」を選択すると、
    「マクロの登録ダイアログボックス」が表示され、あとは、同じ手順で登録できます。

   
   これで、Excel 2007でのマクロの登録は終了です。


  Excel2003以前のバージョン

  こちらは、ボタンを作成するまでの手順がちょっと異なっていますが、あとは、Excel2007とほぼ同じ操作です。


     

   1. メニューバーやツールバー上の適当な場所を右クリックするか、
     「メニューバー」の「表示(V)」⇒「ツールバー(T)」⇒「フォーム」

   2. 表示されたメニューから「フォーム」をクリックします。

   3. 新たに「フォーム」ツールバーが表示されるので、「ボタン」をクリック

   4. セル上にドラッグしてボタンを作成します。

  あとの操作は、Excel2007と同じです。


  登録し終わったら「フォームツールバー」は、「×」をクリックして画面上から消してもかまいませんが、
  ボタンの編集等ができるようにするためには「フォームツールバー」が表示された状態の時だけなので、
  編集するときは、再び「フォームツールバー」を表示してから行います。


  2. ツールバーを作成して、それにマクロを登録する。

    この作業は、Excel2007とそれ以前のバージョンと大きく違っています。

   Excel2007では、それまでのバージョンで使用されていたツールバーが、それまでのものとまるっきり違っていて、
  名称まで、「ツールバー」から「リボン」に変わっています。

  Excel2007から入った人は便利さだけを感じるのでしょうが、

  それ以前のバージョンを使用していたヘビーユーザーにとって、
  慣れるまでは、大変そうです。

  しかし、VBAの使用説明を書こう!などという大それたことを考えなければ、
  使いやすいものなのかもしれません!?


  では、使い慣れたExcel2003以前のバージョンの方から説明します。

  Excel2003以前のバージョン

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

   文章で読むと面倒くさそうですが、実際に行う作業はたいしたことがありません。
   脱落せずにがんばってください!ファイト!

   1. メニューバーから「ツール(T)」⇒「ユーザー設定(C)」を選択する

    「ユーザー設定」のダイアログボックスが開くので、「ツールバーのタグ」を選択し「新規作成(N)」をクリックします。

   2. 「新しいツールバー」のダイアログボックスが新たに開くので、「ツールバー名(T)」に、

     新しく作成するツールバーの名称を入力します。

       

     名称は自分がわかりやすいもので、ツールバーの一覧にないものを入力します。

   3. 「OK」をクリックすると「ツールバー(A)」のリストの一番下に、

    今、あなたが入力した名称のツールバーの項目が追加され、
    チェックボックスがチェックされた状態になっています。

    この時には、まだ何も入っていない小さな「ツールバー」が作成されます。

   4. 「ユーザー設定」ダイアログボックスの「コマンド」タブを選択します。

   5. 「分類(G)」のリストから「マクロ」をクリックし、「コマンド(D)」から「ユーザー設定ボタン」を選択します。

       
   
   6. そのまま、先ほどできた小さなツールバーまでドラッグすると、

    ツールバーにスマイルマークのアイコンが表示されます。

               

   7. この段階で必要なだけアイコンを追加して「閉じる」をクリックします。

     マクロの数分だけアイコンが必要になるとお思いかもしれませんが、
     後で説明する方法をとれば1つだけでよくなります。

     その操作にもこの章の知識が必要になります。あきらめて最後までお読みください!

   8.  ツールバーのアイコンをクリックするか、

      右クリックして表示されるメニューから「マクロの登録(M)」を選択すると、
     新たに「マクロの登録」ダイアログボックスが表示されるので、
     登録したいマクロを選択して「OK」ボタンをクリックします。

     この操作をツールバーに登録したアイコンの数だけくりかえします。


  アイコン、アイコン名を修正する!

   次に、同じアイコンばかりでわかりづらいので、アイコンの絵柄や、テキストをわかりやすいように修正します。

   1. ツールバーの任意の場所を右クリックして、表示されたメニューから「ユーザー設定(C)」を選択すると
     「ユーザー設定」ダイアログボックスが開きます。

     この状態で新規に作成した「ツールバー」のアイコンを右クリックすると、また、新しいメニューが開きます。

   2. そのメニューの「名前(N):」のテキストボックスに、マクロの名前を入力し、
     「イメージとテキストを表示(A)」をチェックするとマクロ名がツールバー上に表示されます。

   3.  同じメニューで「ボタンイメージの編集(E)」、「ボタンイメージの変更(B)」で、直接アイコンの編集や、
     アイコンの変更ができます。


      
     

     いろいろ試してください。


  ツールバーをBookに登録する!

  他のパソコンでもこのツールバーを使用したい時には、ツールバーをBookに登録しなければなりません。

  では、その方法を説明します。

  1. メニューから「ツール(T)」⇒「ユーザー設定(C)」を選択し「ユーザー設定」ダイアログボックスを開きます。

        
  
  2. 「ツールバー」タブの「添付(H)」をクリックします。

  3. 新たに開いたダイアログボックスの「ユーザー設定ツールバー(U)」リストから

   開いているBookに登録したいツールバー名を選択し「コピー(C)>>」をクリックします。


      
  
  4. 「登録ツールバー(T)」にツールバーの名称が表示されるので、
    「OK」をクリックしてダイアログボックスを閉じます。

  5. Excelでそのツールバーを表示させるためには、
 
   メニューの「表示」⇒「ツールバー」⇒表示したいツールバー名のチェックボックスに
   チェックを入れる必要がありますが、

   そのBookを開くと、自動的に今コピーしたツールバーが、表示されるようにすることもマクロでできます。


  Excel2007

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

  Excel2007で、以前のバージョンで作成したツールバーが、登録されているBookを開くと、
  「リボン」に「アドイン」というタブが追加されてそこに表示されます。

  また、そのツールバーを「クイックアクセスツールバー」(後記)に登録することもできます。

  しかし、2003以前のバージョンと違って、自分でリボン(昔のツールバー)の中に登録する方法は、

  一度、2003様式で保存し、Excel2003でツールバーを添付した後で、2007様式に変更する方が楽です。

  でもこの方法は、Excel2003とExcel2007を両方持っている人でないと使えませんね。

  なので、VBAからリボンの「アドインタブ」にマクロを登録する方法を説明します。
     
  myToolBar:作成するツールバー
  myButton1、2:ツールバーに作成するボタン
  Caption:ボタンに表示する名前
  FaceId:アイコン番号
  Style:表示スタイル(今回はアイコンとテキスト)
  OnAction:クリックすると動作させたいマクロ名



Sub adointouroku()
   Dim myToolBar As CommandBar
   Dim myButton1 As CommandBarButton
   Dim myButton2 As CommandBarButton
   Dim vv As Long

      'Excelバージョン取得
      vv = Application.Version

      'Excelのバージョン、2007="12.0"、2010="14.0"
      If vv >= 12 Then
          On Error Resume Next
          Application.CommandBars("mihon").Delete
          Set myToolBar = Application.CommandBars.Add(Name:="mihon", temporary:=True)
          Set myButton1 = myToolBar.Controls.Add(Type:=msoControlButton, temporary:=True)
          With myButton1
             .Caption = "マクロ表示"
             .FaceId = 59
             .Style = msoButtonIconAndCaption
             .OnAction = "AddinMacro"
          End With
          Set myButton2 = myToolBar.Controls.Add(Type:=msoControlButton, temporary:=True)
          With myButton2
            .Caption = "終 了"
            .FaceId = 52
            .Style = msoButtonIconAndCaption
            .OnAction = "kiki"
          End With
          myToolBar.Visible = True
      End If
  End Sub


登録したツールバーを削除する

Sub adoinkesi()
   Application.CommandBars("mihon").Delete
End Sub


     実際は、通常のモジュールではなくて、プロジェクトエクスプローラー(画面左上)の
    Microsoft Excel Objectsの下層にある「This Workbook」に記述します。

    ワークブックを開いた時の「Workbook_Open」の中に「adointouroku」のプローシージャを
    ワークブックを閉じるときの「Workbook_BeforeClose」の中に「adoinkesi」のプローシージャを
    作成しておけば、そのファイルを開けばツールーバーがセットされ、閉じるときに削除されます。
 

    Excel2007には、新しく「リボン」の他に、「クイックアクセス ツールバー」というものが追加されています。

       

    初期設定では、オフィスボタンの右側に表示されています。「リボンの上」ということらしいですが、
    見づらいので「リボンの下」に表示させました。

    その「クイックアクセスツールバー」の右側にある「▼」ボタンをクリックします。

    「クイックアクセスツールバーのカスタマイズ」というメニューが表示されるので、
    そのなかの「その他のコマンド(M)」を選択します。

    新しく表示されたダイアログボックスの「コマンドの選択(C)」で「マクロ」を選択し、
    表示されたマクロの中から、ツールバーに登録したいマクロを選択します。

      

    「クイックアクセスツールバー」の「カスタマイズ(Q)」で登録したいBookを選択します。

    「追加(A)>>」をクリックし右側のテキストボックスに選択したマクロが表示されれば完了です。

    「OK」ボタンをクリックしてダイアログボックスを閉じます。

  ボタンイメージの変更

     


               


      Excel2007では、ボタンにテキストの追加ができないようで、
      「ポップヒント」(マウスを上に重ねておくと表示されるテキスト)でマクロ名を表示するだけのようです。



  マクロの登録(ユーザーフォーム編)

  ユーザーフォームのコマンドボタンに登録する!

   ツールバーに登録する方法を説明してきましたが、実際は、マクロの種類が多くなり、
   それを全部ツールバーに登録するわけにもいかなくなります。

   その解決策にもなり、マクロも捜し易くなる方法です。


  「Alt」キーを押しながら「F11」キーを押してください。
  マクロの編集の時にも使用した、下の図のようなVBEの画面にかわります。

    

  

  ちょっと画面を小さくしてありますが、左上の縦長のウィンドウは、
  エクスプローラーなどでよく見るツリー図になっています。

  項目の先頭にある「+」をクリックすれば、さらに下の項目が表示されます。

  ここは、「プロジェクトエクスプローラー」のウィンドウです。

  
  左下のウィンドウは、「プロパティウィンドウ」です。
  選択したオブジェクトのプロパティ及び、その値が表示されます。

  また、あるオブジェクトがどんなプロパティを持っているかも、ここで分かります。
  たとえば、ワークシートが持っているプロパティを知りたいときは、
  プロジェクトエクスプローラーで、ワークシートを選択すれば、ここに表示されます。


  右側の大きなウィンドウは、表示するものによって「コードウィンドウ」、「オブジェクトウィンドウ」に変わります。

  左側の2つのウィンドウが、あなたの画面に表示されていない場合は、
  メニューの「表示(V)」から、それぞれの名称を選択して表示させてください。


  プロジェクトエクスプローラーの階層は

    VBA Project (**.xls) ( )内はファイル名です。拡張子は2007では.xlsmなど

       標準モジュール

          Module1        となっています。

  図はモジュール1が選択されている状態です。

  マクロを作成したファイルのVBA Project以下の任意の位置(Module1など)を選択した状態で、
  メニューから「挿入(I)」 ⇒ 「ユーザーフォーム(U)」をクリックします。

    


  上の様な画面が表示されます。

  右側の灰色の四角形がユーザーフォームです。

  いまから、これにコマンドボタンを配置して、そのボタンにマクロを登録します。


  ツールボックスの「コマンドボタン」をクリックします。

     

    ツールボックスが表示されていない場合は、
    メニューの「表示(V)」から「ツールボックス」を選択し、表示してください。

    ツールボックスという名称ですが、このBoxの中のものは、ActiveXコントロールと呼び、
    ユーザーフォームに配置することで、使用できるようになります。

   

  ユーザーフォーム上の任意の位置を左クリックするか、クリックしたまま右下方向へドラッグします。

   すると、下の図の様にコマンドボタンが配置されます。

     


 イベントプロシージャを設定する。

  作成したユーザーフォームやコントロールを動作させるためには、イベントプロシージャと呼ばれるコードを記述し、
  それをコントロールの動作と関連付けておく必要があります。

  VBAでは、「ボタンがクリックされた」、「値が変更された」など、何かしらのタイミングで起こる出来事を
  「イベント」といい、イベントに対して入力するSub から End Subまでに入力された処理をプロシージャと呼びます。

  「マクロの記録」は、この一つ分の「プロシージャ」の記録だったのです。

  では、マクロとプロシージャは同じ物かというと、厳密には違う物なのです。

  マクロはプログラム全体を指し、プロシージャはその一部と理解するのが早いかもしれません。

  先程作成した、「コマンドボタン」をダブルクリックすると、
  下の図のように自動的にプロシージャのタイトルとEnd Subステートメントが挿入されます。

  


  この状態は、「コマンドボタン1」が「クリックされた場合に動作するプロシージャになります。

  あとは実行したい処理をこの間に記入するだけです。

  今回は、先に作成しておいたマクロの実行が目的なので、そのマクロの名称を記入すればOKです。

  ここでは、「マクロの自動記録」の章で作成したマクロ「式の入力」を記入します。

     Private Sub CommandButton1_Click()
      
         Unload マクロ表示      
'マクロを実行する前にユーザーフォームを画面上から消します。
         式の入力

     End Sub


   これで、コマンドボタンへのマクロの登録は終了しましたが、このままでは、まだまだ使い物になりません。

  ユーザーフォームをモニターに表示したり、消したりするマクロの作成や、
  ユーザーフォーム、コマンドボタン等に表示する名称等を編集して完成です。

   まず、コマンドボタンの方からやっつけましょう

    1. プロパティエクスプローラーの左上にあるボタンを押して、ユーザーフォームを表示します。

    2. 左下にあるプロパティウィンドウの各プロパティを編集します。

    VBAでは、Book、sheet、セルなどのExcelの構成要素のことを「オブジェクト」と呼び、
    そのオブジェクトの属性をプロパティと呼びます。

    

  よく使う部分にコメントを付けましたが、これだけ知っていればほぼ大丈夫?です。

  詳しくは、「各コントロールのプロパティ」の章を御覧ください。

 
  まず、ボタンに表示する名称を編集します。「Caption」

  次に、背景の色を選択します。「BackColor」の行?を選択すると「▼」ボタンが表示されるので、
  そのボタンをクリックして「パレット」から色を選択します。

  アクセスキー設定は、ボタン操作をマウスだけでなくキーボードでも行いたい場合に設定します。
  図では「F」にしてありますが、この場合のキーボードからの操作方法は、「Alt」+「F」です。


  アクセスキーを設定した場合は、Captionを「式の入力(F)」などに変更すれば、より使いやすいものになります。
  キーボードの「Enter」キーとボタンを連動させる場合には、「Default」プロパティは、値を「True」に修正します。
   ただし、一つのユーザーフォームで「True」に設定できるコマンドボタンは一つだけです。


  次は、ユーザーフォームの編集です。

  コマンドボタンが選択されている状態なので、
  マウスでユーザーフォームのコマンドボタン以外の所をクリックして、ユーザーフォームを選択します。

  すると、プロパティウィンドウがユーザーフォームのものに切り替わります。

   

  ユーザーフォームのプロパティにも、コマンドボタンと同じものがあります。

  違うものもありますが、コメントを入れた3か所を覚えておけば充分です。

  上記の3か所を、コマンドボタンの時と同じ様に編集します。

   ユーザーフォームは、コマンドボタンと違い、マクロで呼び出すことが多いので、
  オブジェクト名もわかりやすいものに修正します。ここでは「マクロ一覧」にします。

  

  次に、ユーザーフォームをモニターから消す操作、キャンセル操作のためのコマンドボタンとプロシージャを作成します。

       
   まず、コマンドボタンを同じ様に作成します。

  作成したコマンドボタンをダブルクリックして、

  自動的に作成されたプロシージャのタイトルとEnd Subステートメントの間に、次の語句を記入します。

     Private Sub CommandButton2_Click()

       Unload マクロ表示

     End Sub


  これで、キャンセルのプロシージャはOKです。

  何でもそうですが、キャンセルボタンはなるべく用意しておいた方が、使いやすいものとなります。

  ユーザーフォームのハンドルをドラッグして適当な大きさに調整します。


  最後に、ユーザーフォームを呼び出すプロシージャを作成します。

  プロジェクトエクスプローラー(画面左上)の「Module1」をクリックして、
  先ほどの、プロジェクトエクスプローラーの上にある一番左側のボタンをクリックすると、
  コードウィンドウが表示されます。

        


  式の入力プロシージャが記述されている画面になると思いますが、
  その下のあいている部分に、直接手入力で記入していきます。

     Sub マクロ表示()

         マクロ一覧.Show

     End Sub


  ここでは、マクロ名を「マクロ表示」にしました。


  この「マクロ表示」という名のマクロを、ツールバーに登録しておけば、
  今後作成したマクロは、このユーザーフォームにコマンドボタンを追加して登録していくだけで、
  簡単に使用できるようになります。

  また、VBEのツールバーのなかには、「マルチページ」というツールもあり、
  こちらは、タグを選択していくことでページが切り替わります。

           


  タグの名称や、ページの追加もタグを右クリックすることで簡単にできるので、
  こちらを利用するとマクロを使用するBookやシート毎に登録しておくこともできます。

  では、ツールバーのボタンに「マクロ表示」を登録して、動作確認を行ってみましょう。

   方法を忘れてしまった方は、

  もう一度、「2. ツールバーを作成して、それにマクロを登録する」を見て下さい。
  
        


  わずかな知識でVBA!       TOP

  マクロで何ができる?   ユーザーインターフェース    マクロの記録   マクロの登録
 
  イベントについて      マクロの編集とデバッグ    ゲームで覚えるVBAプログラミング
 
  オブジェクトの操作     セルの操作            MsgBox関数・InputBox関数
 
  変数の型           ヘルプの活用          イミディエイトウィンドウ  
 
  Withステートメント      Setステートメント
 
  条件分岐のステートメント   If Then Else,Select Case
 
  繰り返しのステートメント   Do Loop
 
  繰り返しのステートメント   For Next
  
  ダイアログボックスを作ってみよう1                 ダイアログボックスを作ってみよう2 【実践編
  
  ActiveXコントロール     各コントロールのプロパティ       文字列の操作        Endプロパティ

  リンク・検索   相互リンク    マイプロフィール       YouTubeの部屋 

Copyright (C) わずかな知識でVBA! All Rights Reserved