エクセルVBAについて質問です。次のページにあるようなマクロを作ってください。

http://hatena88.web.fc2.com/hatena/
最初に正解された方に300ポイントを差し上げます。

なお、現在勉強中ですので、下記の質問の回答者4の方のような解説を付け加えていただくことを回答の条件とさせていただきます。
http://q.hatena.ne.jp/1158311664

回答の条件
  • 1人2回まで
  • 登録:2007/09/27 14:19:24
  • 終了:2007/09/27 15:36:09

回答(1件)

id:umeyoshioka No.1

umeyoshioka回答回数2ベストアンサー獲得回数02007/09/27 15:17:10

ポイント300pt

こんなところでしょうか。

Sub hatena()

'いちばん左のシート、つまりインデックスナンバー「1」のシートから、区分け用のテーブルをセット
Dim KUWAKE_TABLE As Range
Set KUWAKE_TABLE = Worksheets(1).Range("A1").CurrentRegion

'2枚目以降のシートに関して、vlookupワークシート関数を使ってデータのチェック
Dim i As Integer, tmpSht As Worksheet, tmpRng As Range, rowCursor As Integer, str As String, targetRng As Range
For i = 2 To Worksheets.Count
    'チェックする文字列が入力されている範囲を取得
    Set tmpSht = Worksheets(i)
    Set tmpRng = Range(tmpSht.Range("A1"), tmpSht.Range("A1").SpecialCells(xlLastCell))
    '範囲内の各行に対してチェック
    For rowCursor = 1 To tmpRng.Rows.Count
        '検索文字列作成
        str = Trim(tmpRng(rowCursor, 1).Value & tmpRng(rowCursor, 2).Value)
        'findメソッドで文字列が区分け用のテーブルにあるかどうかを判定。
        'ここはvlookup等でも、ループ処理で総当たりでも構わないです。
        Set targetRng = KUWAKE_TABLE.Find(str)
        '検索にヒットするセルがあった場合の処理
        If Not targetRng Is Nothing Then
            'C列に対応する文字列を転記
            tmpSht.Cells(rowCursor, 3).Value = targetRng.Offset(0, 1).Value
        End If
    Next
Next i

End Sub
id:taroemon

ご回答ありがとうございます。

うまくいきました。完璧です。

2007/09/27 15:32:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません