お世話になります。一度質問を締め切ったのですが、色々やっているうちに問題がでてきたので再投稿いたしました。Excel2013です。
計画のファイルがあります。
例えば、"テーブル"シートのA列に品物A、品物B、品物C・・・、と入力されていて、B列にはA列の品物に対応して、付属A、付属B、付属Aなどと入力されているとします。実際は、品物数は数千種類あります。(この例の場合は、品物Aと品物Cは同じ付属を使う)
"計画"シートには、A列にデータの入力規則のリストより、A社やB社・・・を選択し、
さらにB列は入力規則のリストより、=INDIRECT(B2)などといれて、A列の入力規則に対して品物Aや品物B・・・などを選択します。選択するようにしています。
それで、品物Aを選んだら、その下の行に付属Aとか自動ででるようにしたいと思っています。
(列は増やしたくありません)
入力範囲のどこでも選択をできるようにしておきたいので、入力範囲にはすべてリストが設定されており、数式を入れることはできません。
とりあえず、品物を入力する範囲は、C2:C25,G2:G25範囲です。
その状態で、
とりあえずご教授いただいて下記コードまでたどりついていき通常は大丈夫なのですが、B列とC列をまとめて選択コピーして貼り付けると、付属Aと出るべきところが何も起こりません。アクティブセルが隣の列を選択しているためだと思われますが、どうすればよいか分かりません。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = True
On Error GoTo mExit
Application.EnableEvents = False
If Intersect(Target, Range("C2:C25,G2:G25")) Is Nothing Then
Application.EnableEvents = True
Exit Sub
Else
If Target.Offset(1, 0).Value = "" Then
Target.Offset(1, 0).Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("テーブル").Range("B:C"), 2, False)
Application.EnableEvents = True
End If
End If
Application.EnableEvents = True
Exit Sub
mExit:
Application.EnableEvents = True
End Sub
度々お手数をおかけいたしますが、ご教授ください。
No.1ベストアンサー
- 回答日時:
>B列とC列をまとめて選択コピーして貼り付けると、付属Aと出るべきところが何も起こりません
イベントプロシジャが想定している以外の使い方をしてると(イベントプロシジャの設計想定にヌケがあると)、こういう不具合が起こります。
private sub Worksheet_Change(byval Target as excel.range)
dim h as range
on error resume next
for each h in application.intersect(target, range("C2:C25,G2:G25"))
application.enableevents = false
h.offset(1) = application.worksheetfunction.vlookup(h.value, worksheets("テーブル").range("B:C"), 2, false)
application.enableevents = true
next
end sub
>B列は入力規則のリストより、=INDIRECT(B2)などといれて、
>A列の入力規則に対して品物Aや品物B・・・などを選択します。選択するようにしています。
こんな具合に間違った事がご相談に書かれているので、ご相談で書かれてる内容のどれがホントでどれが間違いなのか、全て疑って解明してか無きゃならないのがとっても大変です。
>物Aを選んだら、その下の行に付属Aとか自動ででるようにしたいと思っています。
>(列は増やしたくありません)
入力欄C2:C25,G2:G25には入力規則で許可している「品物ABC」だけじゃなく、入力規則では許可していない「付属品ABA」もまたC2:C25,G2:G25の中に入力したいと、一種矛盾した説明になってます。でもまぁ、この部分はホントであると(付属品ABAも入力できるよう、入力規則を設定しているとの説明がヌケていると)解釈します。
「品物ABC」をリストから選べますが、「付属品ABA」も入力できるよう、入力規則を設定できています。
抜け、もれ、間違いありで余計なことを考えさせてすいません。
このコードでうまくいきました。一応色々な使い方を適当に試しましたが、問題は発生していません。
どうもありがとうございました。助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで隣のセルと同じ数字...
-
A列を検索し一致した行を表示。...
-
ローマ字入力で「トゥ」を入力...
-
「未使用」と「不使用」ってど...
-
1点の辻の字に変換したいがエク...
-
PPTのスライド表示の画面の位置...
-
SUM関数の範囲に#N/Aが...
-
もしセルが"#N/A"なら~をする...
-
Excelでエラー(#N/Aなど)値を...
-
ttlで戻り値を取得する方法
-
excelで小数点0を表示させる方法
-
送信エラー時、レポートメール...
-
チケット何回もエラーは高額請求?
-
高速フーリエ変換でデータ数が...
-
エクセルで0.0と表示したい
-
ACCESS VBA でのエラー解決の根...
-
APEXをやっていたらこんなエラ...
-
VLOOKUP関数についての質問です...
-
エクセルからアクセスにインポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで時刻を自動入力する方法
-
Excelのデータが重いのはなぜで...
-
Excel VBA 答えが0になってし...
-
エクセル。ブック内検索で重複...
-
EXCEL VBAでデータを...
-
名前順になる関数?
-
Excel2007入力規則
-
エクセルの入力 エンターキーで...
-
Excelでキーワード検索後にその...
-
合計が0の行を削除
-
大きい順に並べかえたい。 ので...
-
エクセルで、「袋詰め問題」を...
-
Excel VBA テキストボックスを...
-
エクセルで30日以内に同内容の...
-
エクセルの入力規制。同じ列で...
-
エクセルで漢字がうまく並び替...
-
エクセルの既存のシートでは入...
-
エクセルで自動入力をマクロで...
-
数字入力の省略方法について教...
おすすめ情報