オブジェクト★オブジェクトの操作

わずかな知識で VBA!

オブジェクト
オブジェクトの操作


 

オブジェクトの操作



  VBA = オブジェクトの操作 + 関数

  VBAで、オブジェクトを扱えるようになれば、イッチョマエです。

  でも、オブジェクトと一口に言っても、Excelだけで数十ものオブジェクトがあり、
  その設定値であるプロパティも、数十とあります。

  全て覚えるのはとても大変! 何も知らないところから、
  必要な機能を探し出そうとするのは、もっと大変です。

  ここで、「その全てを知らなければならない!」と考えたら即!
  「自分には無理!!」という考えを持つのは、 至極当然のことです。

  でも、ほんのちょっとのオブジェクトと、それに対するメソッドとプロパティの設定
  で、皆さんのやりたいことのほとんどができてしまうのです。

  おさらい:オブジェクトに動的操作を加えるのがメソッド、
  セルの幅やコマンドボタンのサイズなどの静的な性質をプロパティと呼びます。

  ここでは、そのほんの一部を紹介します。


わずかな知識で
VBA!





  
 
  Application : Excel全体です。

  主なメソッド、プロパティ : Quit
                   DisplayAlerts
                   ScreenUpdating
                   GetOpenFilename
                   Dialogs(xlDialogOpen)
                   Dialogs(xlDialogSaveAs)


  Excelを閉じる操作
   
      Application.Quit
  
  Excelの確認操作を止める

      Excelは、ファイルを閉じる時に保存していなければ保存の確認をしてきます。
      
     ほかにも、ファイルやシートを削除するときなどに確認してきますが、
     マクロでExcelを操作していると、そのような確認作業を行わせたくない時があります。
     そのような場合に使用します。
 
      Application.DisplayAlerts = False

     この手のプロパティは、「False」が不実行で、「True」が実行です。
     「False」にしたものは、必ずあとで、「True」に戻すクセを付けましょう!


  画面の更新を止める操作
 
     マクロの実行中に画面が更新されると、画面がちらついて見えたり、切り替わったりと
     目まぐるしく変更されたりします。
     マクロによるそれらの処理が終了するまで画面の更新を止める時に使用します。

      Application.ScreenUpdating = False

  画面の更新を再開させる操作

      Application.ScreenUpdating = True

  目的のファイル名を取得する操作
     
    なにかしらの目的でアクティブでないファイルの名前を取得したいときに、ユーザー操作により
    そのファイルを選択させてファイル名を取得します。

      Dim StrFna as String
      StrFna = Application.GetOpenFilename


  ファイルを開く操作
 
    普段、ファイルを開くときに目にするダイアログボックスが表示されます。
    戻り値は、「True」か「False」、「0」か「1」です。   
  
      File_Open = Application.Dialogs(xlDialogOpen).Show
      If File_Open = False Then
         MsgBox ("ファイルオープンに失敗しました" _
               & Chr$(&HA) & "処理を終了します!")
         Exit Sub
      End If


  ファイルに名前を付けて保存する操作
 
    「名前を付けて保存する」ダイアログボックスが表示されます。

      File_Save = Application.Dialogs(xlDialogSaveAs).Show
      If File_Save = False Then
         MsgBox ("ファイルの保存に失敗しました" _
               & Chr$(&HA) & "保存処理を終了します!")
         Exit Sub
      End If


 

  Workbook(s):Book全体

   主なメソッド、プロパティ : .ADD
.                    Open
                    .Close
.                    Save
.                    Save As


.    Add ブックを新規作成する

          Workbooks.Add

.    Open   ブックを開く

          WorkBooks.Open FileName:= "C:\マクロの練習\式の入力.xls"
    
          ファイル名を指定する場合は、例のようにファイルの格納場所のパス名、
                及び、拡張子をきちんと指定します。

.    Close  ブックを閉じる

          WorkBooks("<ブック名.xls>").Close 

           このままだと、ブックに変更を加えている場合は、確認のメッセージがでるので、
          それを嫌う場合には、

              WorkBooks("<ブック名.xls>").Close Flse    
              保存しないでブックを閉じる
       
              WorkBooks("<ブック名.xls>").Close SaveChanges:=True 
              変更された時だけ上書きして閉じる
 
.   Save  ブックを上書き保存する

         WorkBooks("<ブック名.xls>").Save

.   Save As ブックに名前を付けて保存する

         WorkBooks("<ブック名.xls>").Save As FileName:= "C:\マクロの練習\式の入力.xls"

         ファイル名を指定する場合は、例のようにファイルの格納場所のパス名、
          及び、拡張子をきちんと指定します。

  Worksheet(s):
  Chart(s) (図)
  Sheet(s) (ワークシート、図の両方のシート)
.      Add
.      Visible
.      Protect
.      Unprotect
.      Copy
.      Delete
.      Name
      .PageSetup.PrintArea
      .PrintOut


   ワークシートを挿入する

       Worksheets.Add

       Addメソッドに引数を付加すると、挿入位置と枚数が指定できます。

          Worksheets.Add After:=Worksheets("sheet1"),Count:=2
          前に挿入する場合は、<Before:=>

  特定のワークシートを非表示にする

     ワークシートを非表示にするには、Worksheetsコレクションに対して、VisibleプロパティにFalseを
     設定します。

          Worksheets("sheet1").Visible = False

     再表示したい場合は、Trueを設定すれば、下に戻ります。

     この方法は、メニューからの手作業での操作と同じで、せっかく隠しても、ユーザーによる操作で
     再表示されてしまいます。

     ワークシートを徹底的にユーザーから隠す方法

          Worksheets("sheet1").Visible = xlVeryHidden
         この方法なら、ユーザーからは、まるっきり見えません。手作業による再表示もできません。
      
         コンボボックスの、RowSouceに使用する語句などを記述するシートを隠してしまえば、
         体裁を気にせずに作成できます。

         表示するには、普通と同じにVisibleプロパティにTrueを設定します。

          Worksheets("sheet1").Visible = True

  ワークシートのコピー

     コピー先の指定は、Addメソッドと同じようにAfterかBeforeを使います。

         Worksheets.("sheet5").Copy After:=Worksheets("sheet1")

    また、コピー先にブック名を指定すれば、そのブックにコピーすることもできます。

  ワークシートの削除

      Worksheets.("sheet5").Delete

      これを実行すると、確認メッセージが表示されるので、表示させたくない場合は、
      既述のDisplayAlertsを用います。

         Application.DisplayAlerts = False
         Worksheets.("sheet5").Delete
         Application.DisplayAlerts = True


  ワ−クシート名を付ける、変更する

     Worksheets("sheet1").Name = "入力シート"

  シートの名前を取得するには、

     namae = Activesheet.Name

     namaeはString型の変数です。変数名は、VBEで用意されているキーワードと重ならないように、
     日本語をローマ字書きしたものを私はよくつかいます。

  Excelのカスタマイズ

     このほかにも、Excelを専用アプリケーションの様に変身させたい場合には、ツールバーを消したり、
     行列番号を消し罫線も消したり色々できますが、
     それらのほとんどのものは、「マクロの記録」で記録できます。

     ここでは、「マクロの記録」で記録できないものを紹介します。

     1.タイトルバーを変える

        Excelのタイトルバーには、「Microsoft Excel」と表示されています。
        普通に使用する場合は、全然このままでかまわないのですが、
        専用アプリケーションのように見せようとすると、ジャマになってきます。
        おもいっきりExcelだとバレるからです。
 
        そこで、タイトルバーを作成したシステム名に変えるには、
        Applicationオブジェクトに対して、Captionプロパティにタイトルを設定します。

           Application.Caption = "<タイトル>"

        「地球温暖化防止システム」と表示する場合は、

           Application.Caption = "地球温暖化防止システム"  です。

      
      

      でも、このままでは、タイトルの前のブック名までは変更されません。
                   (Excel2003以前は逆の順番で表示)

      ブック名の表示を変更するには、Windowsコレクションに対して、
      Captionプロパティにサブタイトルを指定します。

          Windows("<ブック名>").Caption = "<サブタイトル名>"

     「マイカー使用削減シュミレーション」と表示する場合は、

     Windows("<ブック名>").Cption = "マイカー使用削減シュミレーション"  です。

      


  ブック名を非表示にする

    Captionプロパティに何も入力しなければ、ブック名を非表示にすることもできます。

      Windows("<ブック名>").Caption = ""

    上記の設定は、そのファイルが開く時にしておきます。

    設定方法

       VBEの画面で、プロジェクトエクスプローラーの「ThisWorkbook」を選択
            ↓
       オブジェクトウィンドウのオブジェクトを「WorkBook」にすると
       下記の空のプロシージャができあがるので、その間に記入します。

         Private Sub Workbook_Open()
            Application.Cption = "地球温暖化防止システム" 
            Windows("<ブック名>").Cption = "<サブタイトル名>"
         End Sub



  ワークシートのタブを消す。

     各ワークシートを切り替えるタブが画面の最下部に表示されていますが、
     これも非表示にすることができます。

     ユーザーにタブを操作されては困るような時は、消してしまいましょう。

         Windows("<ブック名>").DisplayTabs = False

     タブの表示を戻すには、プロパティを「True」にすればOKです。

         Windows("<ブック名>").DisplayTabs = True


  このぐらい知っていれば充分だと思います。

  次は、VBAで一番頻繁に行うセルの操作です。

        


  わずかな知識で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