|
こんにちは。
UO3さんのアドバイスとはちょっとずれますが、
ご要望どおり、インプットボックスを2つ出すのもいいと思います。
VBEに書かれたコードは原則として上から順番に実行されることは
ご存知だと思います。
つまり
sub test
msgbox "1回目"
msgbox "2回目"
end sub
となっていれば、メッセージボックスが2回出るわけです。
インプットボックスも事情は同じで
sub test
inputbox "1回目"
inputbox "2回目"
end sub
これで2回出ます。
とはいえ、ボックスだけ2回出してみても なんにもならないので
インプットボックスの結果を変数に代入します。
あとはこの変数をつかっていろいろ操作します。
sub test
Dim 変数1 As String
Dim 変数2 As String
変数1 = inputbox ("1回目")
変数2 = inputbox ("2回目")
end sub
※変数は必ず宣言して下さい。
すべての変数を宣言して下さい。
とりあえずここまで。
▼isausa さん:
>ご指導お願いいたします。
>シート枚数は各年度1枚づつ持っており、今のところ10シートです。一番上に検索シートがあり、検索語をinputoboxで入れると、各年のデータがでるようになっています。つぎはぎですが下記のマクロでうまく動いています。
>しかし、現在では、I2に入力された検索語だけが検索ワードなので、inputoboxをもう一つ作り、j2に条件ををもう一つ入れて(AND)で検索したいのですが、方法がわかりません。
>どなたかご教授下さい。
>
>Sub 検索()
>'
>' Dim X As String, SHX As String
> myR = Range("A" & Rows.Count).End(xlUp).Row + 1
> Range("A6:Q" & myR).ClearContents
> Range("I2").ClearContents
>
>
> X = Application.InputBox(prompt:="検索ワード", Type:=2)
> SHX = "*" & X & "*"
> Range("I2") = SHX
>
>
> 自シ = ActiveSheet.Name
> 検索語 = Range("I2").Value
>
>
> For Each mySH In Sheets
> If mySH.Name <> 自シ Then
>
> Set 結果 = mySH.Cells.Find( _
> What:=検索語, _
> LookIn:=xlValues, _
> lookat:=xlWhole)
> If Not 結果 Is Nothing Then
> 先頭 = 結果.Address
> Do
> myR = Range("A" & Rows.Count).End(xlUp).Row + 1
> Range("A" & myR).Value = mySH.Name
> Range("B" & myR).Value = 結果.Offset(0, -7).Value
> Range("C" & myR).Value = 結果.Offset(0, -6).Value
> Range("D" & myR).Value = 結果.Offset(0, -5).Value
> Range("E" & myR).Value = 結果.Offset(0, -4).Value
> Range("F" & myR).Value = 結果.Offset(0, -3).Value
> Range("G" & myR).Value = 結果.Offset(0, -2).Value
> Range("H" & myR).Value = 結果.Offset(0, -1).Value
> Range("I" & myR).Value = 結果.Value
> Range("J" & myR).Value = 結果.Offset(0, 1).Value
> Range("K" & myR).Value = 結果.Offset(0, 2).Value
> Range("L" & myR).Value = 結果.Offset(0, 3).Value
> Range("M" & myR).Value = 結果.Offset(0, 4).Value
> Range("N" & myR).Value = 結果.Offset(0, 5).Value
> Range("O" & myR).Value = 結果.Offset(0, 6).Value
> Range("P" & myR).Value = 結果.Offset(0, 7).Value
> Range("Q" & myR).Value = 結果.Offset(0, 8).Value
>
>
> Set 結果 = mySH.Cells.FindNext(結果)
> If 結果.Address = 先頭 Then Exit Do
> Loop
> End If
>
> End If
> Next
>End Sub
|
|