Excel VBA InputBox(2)キャンセル処理の決定版・・・だと思う

Excel マクロ、VBA

スポンサーリンク

はじめに

前回の記事で、Excel VBAのInputBoxについて、キャンセルボタンを押されたときの処理を残して終わった。

Excel VBA InputBox(1)InputBoxの基本形

で、このキャンセル処理だけど、ケースごとにどういう処理をするのかが「これさえ見りゃOK」レベルで全部まとまってるサイトは、ググっても見つけるのは現状容易ではないと思う。

だから私が書こうと思った。この記事が、InputBoxのキャンセル処理の最適解・決定版となればと思う。

さて、InputBoxで最も重要なTypeについて、

  • 1:数値
  • 2(省略):文字列
  • 8:セル参照

の3つだけ押さえれば良いというのが私の見解だけど、キャンセル処理についてもこの3つそれぞれに別々の処理を用意する必要がある。あるはずなのだ。

ソースコード・簡易説明

それら、Typeごとのキャンセル処理について、下記のソースコードに示した。

大体の説明は、もうソースコードにやかましくコメントで書いてるので、あまりそれ以上は書かない。

なんか
VarType(var) = vbBoolean
とかいう小難しい処理も書いてるけど、こんなの私も普段は全然使わない。

あと、StrConvとかいうのも途中にあるけど、これは大文字・小文字とか半角全角など、文字列を様々な形式に変換できるもの。
ただ私も、このInputBoxのキャンセル処理くらいでしか、ほとんど使うことがないけど。

最後に、このInputBoxのマクロが、キャンセルボタンが押されず最後まで進んだイメージを動画に示す。

InputBoxは、こんな感じで、取得できた値をセルに代入したりして使うんだけどね。

実際のところ私も、このInputBoxを使う頻度がそう高いわけではない。
何か値を入力させる必要があるなら、Excelシートのセル上に書かせておけば、通常はOKだしね。

そういう風に別途セルを使いたくなくて、さっと済ませたい場合にInputBoxを使ったりするのだけど・・・。
また次回、そういうマクロを示します。

スポンサーリンク