記事キャッチ画像   (15) キーボード入力を受け付ける InputBox の説明! 

 1. InputBox と 入力チェック 

 2. Do Loop Until と For Each Next の復習 
  「広告」  
 

  (15) キーボード入力を受け付ける InputBox の説明! 

Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。 

Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。

現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)

( ユーザー定義関数 のVBAコードを含んだ)前回使用した XLSM ファイルを、「マクロを有効」にして開きます。

[ alt ] + [ F11 ] にて VBE を開き、Module1 の最後に以下の VBAコードを入力するかコピーして貼り付け。

 1. InputBox と 入力チェック 

キーボード入力を受け付ける InputBox 関数を利用して、指定した ColorIndex 値が格納されているセルを選択します。
25


InputBox(Prompt, [TITLE], [Default], [XPos], [Ypos], [HelpFile], [HelpContext]) 

str = InputBox("1 から 56 までの数字を入力してください", "ColorIndex", "1")
  • Prompt は InputBox 内に表示される文字列で、省略不可
  • [TITLE] は  InputBox 内のPrompt の上に表示されるタイトル
  • [Default] は 初期値
  • [Xpos] と [Ypos] はInputBox を表示する画面内の座標
  • [HelpFile] と [HelpContext] は ヘルプ関連の指定

想定した値や文字(列)が入力されたかチェックが必要で、そぐわない場合は再度  InputBox 関数 を呼び出す必要があります。


31


25
初期値 "1" が設定されています。

34
テストとして、"33" を入力して、[OK] ボタンをクリック

52
ColorIndex "33" に対応する 「A5」セルが選択されます。

コードの実行は、イミディエイトウィンドウから call selectcolorindex() ( [return] キー押下が必要)にて!


 2. Do Loop Until と For Each Next の復習 



Sub SelectColorIndex()

    Dim num As Integer
    Dim str As String
    Dim objRange As Range

    str = ""

    Do
        num = 0
        str = InputBox("1 から 56 までの数字を入力してください", "ColorIndex", "1")
        If IsNumeric(str) Then
            num = CInt(str)
        End If
    Loop Until (num > 0 And num <= 56)

    Range("A1:H7").Select

    For Each objRange In Selection
        If objRange.Value = num Then
            str = objRange.Address(False, False)
            Exit For
        End If
    Next objRange

    Range(str).Select
    
End Sub


InputBox 関数で受け取ったキーボード入力の内容が「数値」でない場合と「1から56」以外の場合、再度 InputBox 関数を表示するよう、Do Loop Until ステートメントを使用しています。
(数値以外を受け取った場合と未入力(「キャンセル」ボタンクリック押下時を含む)」の場合、「変数num」は ZERO)
IsNumeric 関数を用いキーボード入力の内容が「数値」であれば、 CInt 関数で文字列を整数化。

For Each ステートメントを利用して、受け取った ColorIndex 番号と同じ値が入ったセルのアドレスを取得します。
この際に一度見つかれば、引き続き「繰り返し」処理を行う必要は無いので「Exit For」ステートメントにて「繰り返し」処理を中断しています。
今までに説明したステートメントや関数ばかりですので、詳細は過去記事を参照ください。


明日は、 デバッグ「ブレークポイント」の使い方を説明いたします。


お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)

  「広告」  
  

最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
 

  「広告」