ビデオ: ExcelマクロVBA[脱入門](4) [続き]Rangeを使ってみよう 2024
VBAプログラマは時折圧倒されることがあります。 VBAを見る1つの方法は、Excelコマンドを模倣できるツールであることです。たとえば、このVBAステートメントを考えてみましょう:
Range( "A1:A12")。 Name = "MonthNames"
このVBAステートメントを実行すると、[式]→[定義済みの名前]→[名前の定義]を選択して[新しい名前]ダイアログボックスを表示し、[名前]ボックスにMonthNamesと[参照先]ボックスにA1: [OK]をクリックします。
<! - 1 - >VBAステートメントを実行すると、[新しい名前]ダイアログボックスは表示されません。これはほとんど常にあなたがしたいものです。マクロが実行されている間、ダイアログボックスが画面上で点滅しないようにします。
しかし、場合によっては、Excelの多くの組み込みダイアログボックスの1つを表示し、ダイアログボックスでユーザーが選択できるようにすることができます。これを行うには、VBAを使用してリボンコマンドを実行します。次に、[New Name]ダイアログボックスを表示する例を示します。 [参照先]ボックスのアドレスは、コマンドの実行時に選択された範囲を表します。
<! - 2 - > VBAを使用してExcelのダイアログボックスの1つを表示します。出願。コマンドバー。 ExecuteMso "NameDefine"
あなたのVBAコードはダイアログボックスから情報を得ることができません。たとえば、コードを実行して[新しい名前]ダイアログボックスを表示した場合、ユーザーが入力した名前や名前の付いた範囲をコードで取得することはできません。
<! - 3 - >ExecuteMsoはCommandBarsオブジェクトのメソッドであり、1つの引数、リボンコントロールを表すidMsoパラメータを受け入れます。残念ながら、これらのパラメータはヘルプシステムには記載されていません。リボンは永遠に残っていないため、ExecuteMsoメソッドを使用するコードはExcel 2007より前のバージョンと互換性がありません。
ExecuteMsoメソッドを使用する別の例を次に示します。このステートメントを実行すると、[セルの書式設定]ダイアログボックスの[フォント]タブが表示されます。
アプリケーション。コマンドバー。 ExecuteMso"FormatCellsFontDialog"
不適切なコンテキストで組み込みのダイアログボックスを表示しようとすると、Excelにエラーメッセージが表示されます。たとえば、Format Numberダイアログボックスを表示するステートメントを次に示します。
Application。コマンドバー。 ExecuteMso "NumberFormatsDialog"
このステートメントが適切でないとき(たとえばShapeが選択されているとき)にこのステートメントを実行すると、そのダイアログボックスがワークシートセルにのみ適切であるため、Excelにエラーメッセージが表示されます。
Excelには何千ものコマンドがあります。あなたは必要なものの名前をどのように見つけることができますか? 1つの方法は、[Excelのオプション]ダイアログボックスの[リボンのカスタマイズ]タブを使用することです。ここに到達する簡単な方法は、リボンコントロールを右クリックし、ショートカットメニューからリボンをカスタマイズを選択することです。
実質的にExcelで利用可能なすべてのコマンドが左パネルにリストされています。必要なコマンドを見つけて、その上にマウスを置くと、そのカギの中にある秘密のコマンド名がツールチップに表示されます。
[リボンのカスタマイズ]タブを使用してコマンド名を指定します。