Excel2000 VBA InputBoxでB列の管理番号からC列の氏名を調べる [Excel2000 VBA独習]
Excel2000 VBA InputBoxでB列の管理番号からC列の氏名を調べる
Sub 管理番号から氏名調べる()
'
'B列に管理番号、C列に氏名
'InputBoxに管理番号を入力し氏名をMsgBoxに表示する
'
Dim myR As StringVariant
Dim obj As Object
Dim sinki2 As String
Dim find_row As Integer
Dim find_column As Integer
Dim simei As String
'inputbox を表示して値を取得
myR = Application.InputBox(title:="管理番号から氏名を調べる", prompt:="管理番号を入力してください", Default:="", left:=100, top:=100, Type:=2)
If VarType(myR) = vbBoolean Then Exit Sub ’キャンセルボタンが押された時の処理 myR変数のデータ型を全てのデータに対応したvariant(バリアント型)にする
'シートに同じ値が有るか調べる
Set obj = Worksheets("sheet1").Cells.Find(myR, lookat:=xlWhole)
If obj Is Nothing Then GoTo sinki2 Else
find_row = Worksheets("sheet1").Cells.Find(myR).Row
find_column = Worksheets("sheet1").Cells.Find(myR).Column
simei = Cells(find_row, find_column + 1).Value
MsgBox "氏名は 「 " & simei & " 」 さんです"
Exit Sub
sinki2:
MsgBox "該当する氏名がありません"
End Sub
キャンセルが押された時の処理方法が課題
--------------------------------------------
InputBox- Type(省略可)省略すると文字列として扱う
- 値 意味
- 0 数式
- 1 数値
- 2 文字列
- 4 論理値(TrueまたはFalse)
- 8 セル参照(Rangeオブジェクト)
- 16 エラー値
- 64 数値配列
- (数値と文字列なら1+2で3を指定)
Prompt 省略不可
- ダイアログボックスに表示する文字列
- 改行コードの使用可 vbCrLf vbTab
Default 省略可
- テキストボックスに規定値として表示する文字
Title 省略可
- ダイアログボックスのタイトルバーに表示する文字
コメント 0