2016年6月16日木曜日

【VBAリファレンス】InputBoxは他の誰かのために使いましょう。

今日はInputBoxについて記事を書いていきたいと思います。

さて、世の中にたくさんあるツールの中で
何かの処理を行う場合、
とある入力を求められることがあります。

こういうやつです。


インプットボックスっていって
使用するユーザーに任意の情報を入力するための
テキストボックスになります。

記述自体はとても簡単です。
-------------------------------------------------
Sub test()

'ダブルクォーテーションの間のメッセージを変えるだけで
'表示するメッセージを変えられます
Application.InputBox ("名前を入力してください")

End Sub
-------------------------------------------------
上記、ウィンドウを表示させるにはこのコードを記述するだけで
出現させることが出来ます。

しかし、これだけではウィンドウが出るだけで
文字を入力してもなーんの意味もありません。

InputBoxって、文字を入力して
その入力した文字を何かしらの処理の材料として使いたいわけですよね。

なので、右辺を左辺に代入するということで
変数を使用します。

Application.InputBoxの前に、宣言済みの変数をイコールで
つなげてあげましょう。
-------------------------------------------------
Sub test()

Dim ipt_b As String

ipt_b = Application.InputBox("名前を入力してください")

End Sub
-------------------------------------------------
変数名ipt_bとします。
で、今回は入力する値が名前なのでテキスト型(String)を宣言します。
※当然ですが値が数値の場合は、Long型を宣言してあげてください。

これを実行すると、InputBoxで入力した文字列が
変数ipt_bに代入されます。

さて、これだけでも意味がありません。

あとは、変数に代入した値をどう使うかは皆様次第です。


例えば、列の処理をする場合は
String型として、直接列の値を入力して見るのもいいかもしれません。


任意の列を削除したい時
以下のような使い方が出来ます。
-------------------------------------------------
Sub test()

Dim ipt_b As String

ipt_b = Application.InputBox("削除したい列を入力してください")
Columns(ipt_b).Delete

End Sub
-------------------------------------------------

サンプル画像(C列を削除したいと思います)


先ほどのコードを実行します。
InputBoxにCと入力しOKを押すとコードが実行されます。










ここでは文字列の【C】が
変数ipt_bに代入されます。
そして、Columns(ipt_b).Deleteに充てられるので
Columns(C).Deleteと同じ意味になりますね。

処理結果




C列にあった【この列は消す】という列が消えています。


InputBoxはおもに、他の誰かから情報を取得する場合、
あるいは、都度変わる任意の情報を直接入力する場合
に大変役立つ機能です。


この使用例はほんの一部ですので、色々と試してみてください。

0 件のコメント:

コメントを投稿