人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAについて質問です。

「0」という名前のシートにはA列にだけ文字列が記入されています。
「9」という名前のシートにはA列とB列に文字列が記入されています。

「0」と「9」を比較して両者のA列のどこかに合致した文字列があった場合、
「9」のB列にある文字列を「0」のB列に記入するというマクロを作ってください。

(例)
「0」のA2に「ヤクルト」という文字列が、
「9」のA5に「ヤクルト」、B5に「スワローズ」という文字列があったとします。
「0」のB2に「スワローズ」と記入するということです。

以上、よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:b2 VBA エクセル スワローズ マクロ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● SALINGER
●50ポイント
Sub Macro()
 For i = 1 To Worksheets("0").Range("A65536").End(xlUp).Row
 For j = 1 To Worksheets("9").Range("A65536").End(xlUp).Row
 If Worksheets("0").Cells(i, 1).Value <> "" Then
 If Worksheets("0").Cells(i, 1).Value = Worksheets("9").Cells(j, 1).Value Then
 Worksheets("0").Cells(i, 2).Value = Worksheets("9").Cells(j, 2).Value
 End If
 End If
 Next j
 Next i
End Sub
<|
◎質問者からの返答

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

うまくいきました。


2 ● nyankochan
●20ポイント

こんな感じでどうですか?

もっとシンプルなのがありそうですが。

Sub マッチ()

Dim word As Variant

Dim gyou0 As Integer

Dim gyou9 As Integer

gyou0 = 1

gyou9 = 1

Do While Cells(gyou0, 1) <> ""

word = Cells(gyou0, 1)

Do While Sheets("9").Cells(gyou9, 1) <> ""

If Sheets("9").Cells(gyou9, 1) = word Then

Cells(gyou0, 2) = Sheets("9").Cells(gyou9, 2)

Exit Do

End If

gyou9 = gyou9 + 1

Loop

gyou0 = gyou0 + 1

gyou9 = 1

Loop

End Sub

◎質問者からの返答

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

私の環境ですと「実行時エラー」が出てしまいます。

しかし大変参考になりました。

またご回答ください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ