|
こんにちは。かみちゃん です。
>そうすると、A-1B-1というような文字列ができます。
>
> A B C D E F
>1 C-1 D-1 E-1
>2 A-1 B-1 X Y Z A-1B-1
>というような感じです。(ここでは、F列が作業例です)
>
>それを検索して、一致したら行番号を取得します。
>次に列見出しの中からC-1、D-1、E-1を探して列番号を取得します。
>取得された行番号、列番号のセルの値が取得したい値
>ということになるのではないでしょうか?
>Find メソッドを使えばできるような気がしますので、一度ヘルプなどで調べてみてください。
F列に作業列を作ってあることを前提にですが、次のようなコードでできましたので、参考にしてみてください。
Option Explicit
Sub Macro1()
Dim TargetValue1 As String
Dim TargetValue2 As String
Dim TargetValue3 As String
Dim c As Range
Dim RowNo As Long
Dim ColumnNo As Integer
'検索する文字列(実際には、セルの値?)
TargetValue1 = "A-1"
TargetValue2 = "B-3"
TargetValue3 = "D-1"
'行見出しの作業列(F列)を検索
RowNo = 0
With Columns(6)
Set c = .Find(TargetValue1 & TargetValue2, LookIn:=xlValues)
If Not c Is Nothing Then
'見つかったら行番号を取得
RowNo = c.Row
End If
End With
'列見出し(1行)を検索
ColumnNo = 0
With Rows(1)
Set c = .Find(TargetValue3, LookIn:=xlValues)
If Not c Is Nothing Then
'見つかったら列番号を取得
ColumnNo = c.Column
End If
End With
'行番号、列番号ともに取得できたら
If RowNo > 0 And ColumnNo > 0 Then
'検索結果の取得
MsgBox TargetValue1 & " And " & _
TargetValue2 & " And " & _
TargetValue3 & " の検索結果は " & _
Cells(RowNo, ColumnNo).Value
Else
MsgBox TargetValue1 & " And " & _
TargetValue2 & " And " & _
TargetValue3 & " に一致するものはありませんでした。"
End If
End Sub
|
|