オブジェクト★オブジェクトの操作 |
||||
| わずかな知識で 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