ビデオ: Excelマクロ入門編3_標準モジュールの追加と削除&数字や文字列を書く 2024
InputBox関数を使用して、Excel 2013マクロにダイアログボックスを追加することができます。マクロを実行すると、このVisual Basic関数により、新しいワークシートに適したタイトルを入力できる[入力]ダイアログボックスが表示されます。マクロは、そのテキストを現在のセルに入れ、このテキストをフォーマットします。これは、次にマクロを訓練したものである場合です。
InputBox関数を使用して静的マクロにインタラクティブ機能を追加するのが簡単であることを確認するには、現在「Mind Over Media」というテキストを入力しているCompany_Nameマクロを実際に名前を入力するように変換する手順に従ってください入力する必要があります。 InputBox関数は、次の構文を使用します。
<!InputBox(prompt [、title] [、default] [、xpos] [、ypos] [、helpfile、context])
この関数では、 プロンプト >引数は必須で、残りの引数はオプションです。 プロンプト 引数は、入力ダイアログボックス内に表示されるメッセージを指定し、ユーザーに新しい値(またはこの場合は新しい会社名)を入力するように促します。
プロンプト 引数は最大1,024文字まで可能です。ダイアログボックス内の異なる行にプロンプトメッセージを表示するには、テキストに関数Chr(13)とChr(10)を入力します(メッセージに改行と改行をそれぞれ挿入します)。 <!オプションの
title引数は、入力ダイアログボックスのタイトルバーに表示するテキストを指定します。 title 引数を指定しないと、アプリケーションの名前がタイトルバーに表示されます。オプションの デフォルト 引数は、[入力]ダイアログボックスの下部にあるテキストボックスに自動的に表示されるデフォルトの応答を指定します。 デフォルトの引数を指定しない場合、入力ボックスでテキストボックスが空になります。 <!
xpos
とypos オプションの引数は、画面の左端からダイアログボックスの左端までの水平距離と、画面の上端からダイアログボックスの上端までを表示します。これらの引数を指定しないと、Excelは入力ダイアログボックスを水平に配置し、画面の上下に約3分の1の位置に配置します。 helpfile および
context 省略可能な引数は、入力ダイアログボックスの動作とタイプを説明するためにユーザが使用できるカスタムヘルプファイルの名前を指定しますそれが受け入れるデータの Excelヘルプシステムで使用するためのカスタムヘルプファイルを作成するプロセスの一環として、トピックにコンテンツに適したコンテキスト番号を割り当てます。このコンテキスト番号は、 コンテキスト 引数として指定されます。 InputBox関数。
この関数にヘルプファイルと コンテキスト 引数を指定すると、ユーザーがクリックしてヘルプウィンドウのカスタムヘルプファイルにアクセスするための[ヘルプ]ボタンがカスタム入力ダイアログボックスに追加されます。
InputBox関数を使用してマクロにコード行を追加する前に、行を移動するVisual Basicコマンド内の場所を見つける必要があります。アクティブなセルにMind Over Mediaテキストを入力するには、Company_Nameマクロで次のVisual Basicコマンドを使用します。 ActiveCell。 FormulaR1C1 = "マインドオーバーメディア" マクロに対話性を追加するには、このActiveCellのすぐ上にあるコードウィンドウの行にInputBox関数を挿入する必要があります。 FormulaR1C1ステートメントを追加します。
ActiveCellの先頭にあるコードウィンドウにカーソルを置きます。 FormulaR1C1ステートメントを選択し、Enterキーを押して新しい行を挿入します。
新しい行を追加したので、挿入ポイントをその行まで移動する必要があります。
上矢印キーを押して、新しい行の先頭にカーソルを置きます。
-
この行では、
プロンプト
-
引数をInputBox関数に提供する変数を作成します。これを行うには、変数の名前(この場合はInputMsg)とそれに続く現在のエントリを記述します。等号の右側にメッセージテキストを囲んで、閉じた二重引用符で囲んでください。
次のコードを入力して8行目にInputMsg変数を作成し、Enterキーを押して新しい行を開始します9: InputMsg = "このワークシートの会社名またはタイトルを下のテキストボックスに入力してからOKをクリックします。 " 次に、InputBox関数のオプションの
-
title
引数を指定するInputTitleという名前の変数を作成します。この変数は、テキスト "スプレッドシートタイトル"を入力ダイアログボックスのタイトルとして表示します。ここでも、ダイアログボックスのタイトルバーの名前を必ず二重引用符で囲んでください。
次のコードを入力して9行目にInputTitle変数を作成し、Enterキーを押して新しい行10を挿入します。 InputTitle = "Spreadsheet Title" 次に、オプションの変数名DefaultTextを作成しますInputBox関数の
-
デフォルト
引数。この変数により、カスタムマテリアル名入力ダイアログボックスの下部にあるテキストボックスに、「Mind Over Media」というテキストがデフォルトエントリとして表示されます。
次のコードを入力して、10行目にDefaultText変数を作成し、Enterキーを押して新しい行11を挿入します。 DefaultText = "Mind Over Media" 次に、 InputBox関数をそのエントリとして(作成したInputMsg、InputTitle、およびDefaultText変数を使用して)、この関数の結果を格納します。
-
次のコードを入力して、11行目のInputBox関数を使用するSpreadsheetTitle変数を作成します。
SpreadsheetTitle = InputBox(InputMsg、InputTitle、DefaultText)
最後に、 "Mind Over Media" ActiveCellでSpreadsheetTitle変数(値はSpreadsheet Title Inputダイアログボックスに入力された値によって決定されます)を持つFormulaR1C1プロパティを使用して、マクロ内のこの定数を効果的にインタラクティブにするための手段を効果的に置き換えます。
-
12行目の「Mind Over Media」を選択し、SpreadsheetTitle(引用符は不要)に置き換えます。
Visual Basicツールバーの[保存]ボタンをクリックして編集したマクロを保存し、[Microsoft Excelの表示]ボタンをクリックするか、Alt + F11を押してワークシートに戻ります。次に、[表示]タブの[ウィンドウ]グループの[非表示]ボタンをクリックします。
これで、新しいブックを開き、Ctrl + Nを押して編集したマクロを実行する準備が整いました。
-
この図は、インタラクティブにするステートメントを追加した後、編集されたCompany_Nameマクロを持つコードウィンドウを示しています。
-
次の図は、ワークシートの実際のスプレッドシートタイトルダイアログボックスを示しています。この入力ダイアログボックスが自動的に表示され、Company_Nameマクロの編集済みのインタラクティブバージョンを実行するたびに、入力を求めるプロンプトが表示されます。
Mind Over Mediaを現在のセルに入力し、残りのマクロコマンドを使用してフォーマットするには、このカスタムダイアログボックスで[OK]をクリックします。別の会社の名前を入力してフォーマットするには、[OK]をクリックする前に、会社の名前(テキストボックスにマインドオーバーメディアを自動的に置き換える)を入力するだけです。