ユーザー入力用のマクロの一時停止(Microsoft Excel)
スプレッドシートプログラムをかなり長い間使用している人は、Lotus1-2-3で使用可能だった古い\ {?}〜コマンドを覚えているかもしれません。このコマンドを使用すると、ユーザーがスプレッドシートにデータを入力している間、マクロを一時停止できます。
Excelには同じ機能は含まれていませんが、ユーザーに入力を求める方法があります。 2つの主要な方法は次のとおりです。
MsgBox関数。*この関数は、ダイアログボックスと一連のボタンを表示します。ユーザーがボタンをクリックすると、ボタンがクリックされたことを示す整数値が返されます。その後、プログラムは返された値に基づいてアクションを実行できます。 (MsgBox関数の詳細については、 link:/ excel-Using_Message_Boxes [このヒントを参照]
。)
InputBox関数。*この関数はダイアログボックスを表示し、ユーザーが応答を入力できるようにします。ユーザーが入力したものはすべて、文字列としてマクロに返されます。 (InputBox関数の詳細については、 link:/ excelribbon-Getting_User_Input_in_a_Dialog_Box [このヒントを参照]
。)
上記のリンクに記載されているように、これらの関数は両方とも_ExcelTips_の他の問題で説明されています。ユーザーの入力に基づいて、マクロの動作を任意の方法で変更できます。関数の唯一の欠点は、単一の個別のデータしか返さないことです。
つまり、ユーザーがセルの範囲を入力して処理を続行できるようには設計されていません。たとえば、ユーザーに5つのセル宛ての5つの値を提供するように依頼する場合は、InputBoxを5回提示して、ユーザーの応答を目的のセルに次々に配置する必要があります。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9515)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。