AブックのアクティブシートのC列に果物の名前が有り(果物名に重複無し)
Bブックには100シート程(今後増えていく)の各C列に果物の名前有り(果物名に重複無し)、D列に値段が記載
教えていただきたいのは
AブックのD列にBブックの該当する果物の値段を貼り付けたいのですが
検索で引っかかった場合その果物は検索を止め、該当しなかった果物は該当なし記載となる
VBAを作りたいのですが難しく困難でした。
どうぞコードを教えていただきたいです。
また可能であればAブックのアクティブシート上の特定セル2箇所に50や100と入力すると
Bブック参照時にシート50~100となるような作りに出来たらお願いいたします。
No.4ベストアンサー
- 回答日時:
以下のマクロをAブックの標準モジュールに登録してください。
Bブックはオープンした状態でマクロを実行してください。
Bブックのブック名はB.xlsxです。実際の名称が異なる場合は適切に変更してください。(2か所あります)
Option Explicit
Public Sub 値段設定()
Dim dicT As Object
Dim ws As Worksheet
Dim ts As Worksheet
Dim maxrow As Long
Dim wrow As Long
Dim st_no As Long
Dim en_no As Long
Dim sheet_no As Long
Dim max_sheet_no As Long
Dim err As Boolean
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
max_sheet_no = Workbooks("B.xlsx").Worksheets.count
Set ws = ActiveSheet
st_no = ws.Range("F2").Value
en_no = ws.Range("G2").Value
If st_no < 1 Or st_no > max_sheet_no Then err = True
If en_no < 1 Or en_no > max_sheet_no Then err = True
If st_no > en_no Then err = True
If err = True Then
MsgBox ("開始番号または終了番号が誤っています")
Exit Sub
End If
For sheet_no = st_no To en_no
Set ts = Workbooks("B.xlsx").Worksheets(sheet_no)
maxrow = ts.Cells(Rows.count, "C").End(xlUp).Row
For wrow = 5 To maxrow
dicT(ts.Cells(wrow, "C").Value) = ts.Cells(wrow, "D").Value
Next
Next
maxrow = ws.Cells(Rows.count, "C").End(xlUp).Row
For wrow = 3 To maxrow
If dicT.exists(ws.Cells(wrow, "C").Value) = True Then
ws.Cells(wrow, "D").Value = dicT(ws.Cells(wrow, "C").Value)
Else
ws.Cells(wrow, "D").Value = "該当なし"
End If
Next
MsgBox ("完了")
End Sub
No.1
- 回答日時:
補足要求です。
1.Aブックのアクティブシートの1行目は見出しで、実際のデータは2行目から開始しているのでしょうか。それとも、いきなり1行目からデータが開始しているのでしょうか。(添付図は1行目が見出しの例です)
2.同様にBブックのシート1~100の1行目は見出しでしょうか。
3.Aブックのアクティブシート上の特定セル2箇所は、F2とG2のセルで良いですか。もし、指定があるならそのセルを提示してください。
(添付図の黄色のセルです)
4.Bブックのシート1~100ですが、
一番左側のシートをシート1、その右隣をシート2、。。。以降同様
にしますがそれでよいですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) セルの値と同じ名前のシートのセルの結合を解除する方法を教えてください 3 2022/10/03 10:23
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 別ブックの列同士の値が一致したときの処理 1 2022/09/03 08:27
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
7文字以上のフルーツをできるだ...
-
ハーブソルトを代用できるもの...
-
中黒「・」か読点「、」か?
-
さくらんぼを塩水で洗うのは?
-
4歳の子供がさくらんぼを種ご...
-
梶井基次郎の檸檬
-
Excelの関数 SUBSTITUTEとIF関...
-
教えてください!!
-
Excel MATCH関数で検索範囲内...
-
しらたきと吐き気
-
メロンとヨーグルトは合わない...
-
筍の上の部分が緑色になってい...
-
スポンジケーキってどのくらい...
-
「であり」と「であって」の使...
-
ラズベリーの種の抜き方を教え...
-
Excelでの全通りの組み合わせ出...
-
さくらんぼに似ているが、さく...
-
ふにゃふにゃになったキウイっ...
-
煮物こんにゃくの冷凍保存について
-
しわしわのぶどうの実をフッカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えてください!!
-
ハーブソルトを代用できるもの...
-
7文字以上のフルーツをできるだ...
-
中黒「・」か読点「、」か?
-
筍の上の部分が緑色になってい...
-
スポンジケーキってどのくらい...
-
Excel MATCH関数で検索範囲内...
-
Excelでの全通りの組み合わせ出...
-
梶井基次郎の檸檬
-
エクセルで数字を入力したら文...
-
煮物こんにゃくの冷凍保存について
-
10年前のにんにく漬け、食べて...
-
ふにゃふにゃになったキウイっ...
-
職場で隣の人についてです。飲...
-
さくらんぼに似ているが、さく...
-
パイナップルにたかる虫
-
しらたきと吐き気
-
Excelの関数 SUBSTITUTEとIF関...
-
大至急!妊娠初期でイチゴにつ...
-
4歳の子供がさくらんぼを種ご...
おすすめ情報
tatsumaru77様
>1.Aブックのアクティブシートの1行目は見出しで、実際のデータは2行目から開始しているのでしょうか。それとも、いきなり1行目からデータが開始しているのでしょうか。(添付図は1行目が見出しの例です)
1行目は空欄、2行目は見出し、3行目からになっております
>2.同様にBブックのシート1~100の1行目は見出しでしょうか。
4行目見出し、5行目からになっております
>3.Aブックのアクティブシート上の特定セル2箇所は、F2とG2のセルで良いですか。もし、指定があるならそのセルを提示してください。
(添付図の黄色のセルです)
F2.G2で大丈夫です お願いいたします
>4.Bブックのシート1~100ですが、
一番左側のシートをシート1、その右隣をシート2、。。。以降同様
にしますがそれでよいですか。
大丈夫ですお願いいたします
どうぞ宜しくお願いいたします
めぐみん_様
>とはシート名ですか?
シートIndexNoですか?
シート名は年と月の記載の為 オブジェクト名になります
>あ、あと重複なしはシート内に限りますか?
それともブック内で重複する(今後も)事はなしですか?
ブック内でも重複はありません
どうぞ宜しくお願いいたします