• ベストアンサー

エクセル 条件にあったセル移動(再)

以前に↓で質問させていただいた件について再質問させていただきます。 http://okwave.jp/qa5043658.html 回答番号No.3(myRangeさん)のVBAを利用させていただいているのですが、困ったことが一つ出てきてしまいました。 A列に入力する商品コードが存在しないコードの場合、C列の条件「買取」か「委託」が表示されず、 「実行時エラー 13 型が一致しません」が出てしまいます。 このエラーを回避するにはどのように変更すればよいのでしょうか。 商品コードが間違っているのは「商品名」と「条件」のセルに「N/A」が表示されるので間違っていることは確認できます、ですので正しい商品コードを再入力して作業を先に進めることが出来ればよいと思い、単に上記エラーが表示されない方法をいろいろと考えてみました。 しかし、ここ数日悩んだのですが結局解決できずに再質問させていただきました。 今一度お知恵拝借願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

またまた登場、myRangeです。 本人が責任を持って直した方がええでしょうね。(^^;;;   エラーの原因は、エラー値が単純に比較できないことにあります。 で、以下のコードと入れ替えてください。 尚、商品が存在しない場合は、A列に留まるようにもしました。 '----------------------------------------------------  Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Count > 1 Then Exit Sub   If Target.Row < 2 Then Exit Sub    Application.EnableEvents = False Select Case Target.Column   Case 1     If IsError(Cells(Target.Row, "C")) Then       Target.Select     Else       If Cells(Target.Row, "C").Value = "買取" Then         Cells(Target.Row, "E").ClearContents         Cells(Target.Row, "D").Select       Else         Cells(Target.Row, "D").ClearContents         Cells(Target.Row, "E").Select       End If     End If   Case 4, 5     Cells(Target.Row + 1, "A").Select End Select Application.EnableEvents = True End Sub '--------------------------------------- 以上です。

Haku46
質問者

お礼

ありがとうございます。 うそのように解決しました。 再質問でのお一人目の回答者さんである「f272さん」が おっしゃっておられた「もう1つの分岐」の件を ここ数日ずーっと悩んでいて そのもう一つの条件を「委託」として考えており、エラー判定をいれることは考えてもいませんでした。 とても勉強になりました。 度重なるご教授本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • f272
  • ベストアンサー率46% (8053/17219)
回答No.3

#1です。 申し訳ありません。ちゃんと動作確認をしなくてはいけませんね。頭の中だけで考えていると間違いを犯すという良い見本でした。

Haku46
質問者

お礼

とんでもありません、お返事いただけただけでも十分に感謝感謝です。 今後とも、よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8053/17219)
回答No.1

    If Cells(Target.Row, "C").Value = "買取" Then       Cells(Target.Row, "E").ClearContents       Cells(Target.Row, "D").Select     Else       Cells(Target.Row, "D").ClearContents       Cells(Target.Row, "E").Select     End If ここで買取か委託かの判断をしていますが、N/AのときもElseの方に行ってしまいます。だから     If Cells(Target.Row, "C").Value = "買取" Then       Cells(Target.Row, "E").ClearContents       Cells(Target.Row, "D").Select     Else If Cells(Target.Row, "C").Value = "委託" Then       Cells(Target.Row, "D").ClearContents       Cells(Target.Row, "E").Select     Else       Cells(Target.Row, "A").Select     End If のようにもう1つ分岐を入れてください。

Haku46
質問者

補足

早々にご回答いただきありがとうございます。 早速ためさせて頂いたのですが、うまく動作しませんでした。 もしかしてと思い4行目の↓を >Else If Cells(Target.Row, "C").Value = "委託" Then ↓のように2行に分けたり Else  If Cells(Target.Row, "C").Value = "委託" Then Elseを抜いてみたりしましたが動作しませんでした。 ご教授いただいた「もう1つ分岐」の部分を考えているのですが、結果を得られませんでした。 よろしければ再度よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 条件にあったセル移動

    表題の質問をさせていただきます。 以下の表があります。 A列…商品コード(都度入力) B列…商品名(別シートから個々の名称をVLOOKUPで表示) C列…条件(別シートから「買取」「委託」のどちらかがVLOOKUPで表示) D列…買取在庫数(都度入力) E列…委託在庫数(都度入力) 現在はA列に商品コード入力後にC列の条件(買取か委託)を確認し、D列の買取在庫数かE列の委託在庫数の どちらかに在庫数を入力しています。 セルの移動は矢印キーかマウスを利用しています。 これを、商品コード入力→Enter後に 条件を加味して 買取在庫数か委託在庫数のセルに自動で移動して 在庫数入力→Enter後に 次行の商品コード入力セルに自動で移動するようなことが出来ないかうかがいたいのです。 在庫の条件が無ければ↓のかたの http://okwave.jp/qa3080856.html  やりかたで可能だったのですが、条件が ある場合の回答を見つけることが出来ずに質問させていただきました。 エクセル2003です、よろしくお願いいたします。

  • エクセル 条件にあったセルへの色づけ

    表題の質問をさせていただきます。 利用しているのはエクセル2003です。 以下の在庫管理の表があります。 A列:商品コード B列:商品名 C列:条件 (買取・委託1・委託2・その他) D列:買取 E列:委託1・委託2 F列:その他 1行目は上記項目名になっていて2行目からデータを入力。 商品コードを入力すると別シートにあるデータからVLOOKUPで商品名と条件は自動で入力されます。 そして、在庫数を その条件にあったD列からF列までの該当列に入力しています。(DからFまでには1つしかデータは入りません) 質問させていただきたいのは、条件にあった列のセルに色付けができないかと思っているのです。 例 101 みかん 買取 (セル茶色)(セル無色)(セル無色) 102 りんご 委託1(セル無色)(セル茶色)(セル無色) 103 ぶどう 委託2(セル無色)(セル茶色)(セル無色) 104 すもも 買取 (セル茶色)(セル無色)(セル無色) 現在は目視で該当列に入力しているのですが、実際には もっと条件も多く、またセル幅もせまいので 他の条件欄に入力してしまうミスがでています。 ミスを減らすためにも条件にあったセルを目立たせるように色付けをしたいと思ったのです。 よろしくお願いいたします。

  • エクセル 関数 条件にあったセルを表示したい

    エクセル関数で困っています。 下記のような表があります。商品コードに一致する顧客コードを表示させたいのですが.... 何か良い方法がありますでしょうか? 【表1】 顧客コード  商品コード1 商品コード2 商品コード3 ..6まであります。 05824    A12500  B05040  A25012 02572    B05040  C12500 07050   03058    C12500  B05040 【表2】 商品コード   顧客コード B05040  05824          02572          03058 C12500  02572          03058 A12500  05824 A25012  05824 【表1】の顧客コードと商品コードは別表からVLOOKUPで一定の条件を満たしたものを抽出しています。顧客コードは重複するものはありません。 商品コードは数が多いため、【表1】に表示されている商品コードのみを使って【表2】のように該当する顧客が多い商品コード順に並べ替え して、該当する顧客コードを表示させたいのですが可能でしょうか? 説明不十分な点があるかと思いますがどうぞ宜しくお願いします。

  • エクセルのセルにて

    例えば、Aの1列を使用し数字を入力していくのですが、その同じ列に入力済みの数字と同じ数字が入力された場合、エラー表示が出るように設定出来るのでしょうか?

  • excelのセルの自動移動

    excel で E 列に入力後次の行のAの列に自動的に移動したいのですが、どのようにコードを書けばいいのでしょうか? ぜひ教えてください。

  • Excel 条件に一致する日付の求め方について

    こんにちは!初めて質問します。 Excel関数の使い方がわからずに困っています。 売上と在庫管理をそれぞれ別シートに入力しています。 売上が出た場合、在庫管理シートに売上日が表示されるようにしたいのです。 シートは、このような形で、それぞれデータを入力しています。 売上表シート A列  B列    C列      D列 日付  顧客名  商品コード  売上金額 在庫管理シート A列   B列     C列    D列    E列 入荷日 商品コード  商品名  売上日  売上金額 商品コードが一致する売上表シートの日付を、在庫管理シートの売上日に表示させたいのですが、 上手くいきません。 売上金額はSUMIF関数で処理することができました。 Excelに関する知識も乏しく、非常に困っています。 なにぶん初めての質問のために質問内容も的を得ず、わかりづらいかもしれませんが、 どなたかお分かりになる方、是非ご教示くださいませ。

  • エクセルでK列の最終行のセル値を指定のセルに・・・

    いつもお世話になっております。 5月に下記のコードを教えてもらい、簡単な改良や条件を追加しながら複数のシートに展開中なのですが新しいパターンが出たのでHELPです。 K列の最終行の値を同じ表のH6のセルに転記してそれを使って出た計算結果(セルH7)の値をH列の最終行のセルに転記したいのですが。 (具体的な列とセルはシートで変わる可能性があります) 下記のコードは別のシート(計算表)の特定(結果)のセルの値を指定した列に転記するコードでこれで何とかしようとしましたが歯が立たず。 なにとぞよろしくお願いいたします。 Option Explicit Sub Sample3()   Dim MyRange As Range  With ThisWorkbook   Set MyRange = _    .Sheets("入力表").Cells(Rows.Count, 5).End(xlUp)   MyRange.Offset(1, 0).Value = .Sheets("計算表").Range("J15").Value   MyRange.Offset(1, 1).Value = .Sheets("計算表").Range("J20").Value  End With End Sub

  • エクセル VBA 同じ内容のセルの行を合わせたい

    売上集計表があり、A列に全商品のコードが表示されてます。 毎日の売上商品のデータを商品コード別に数量を入力して同じ内容のセルの行の位置を合わせる作業を毎日行っています。 毎日の売上データはエクセルで集計されたデータを貼り付けて行っています。これをなんとかVBAで処理したいのですが、どうしたらいいのかわかりません。 内容としてはA列に全商品の商品コードが既に入力されています。 月のはじめは、B列とC列に一日の集計データそのまま貼り付けます。 A列の商品コードと同じ商品コードの行に合うまで空白のセルを挿入していきます。 次の日は、D列とE列、その次はF列とG列と右に貼り付けしていきます。 商品コードは約3000件、毎日の集計データ数は約500件です。 どうか教えてください。 完成例)   A列   B列   C列     D列    E列       F列    G列   H列   I列 商品コード    10/1分        10/2分            10/3分       10/4分・・・続く        商品コード 数量   商品コード 数量      商品コード数量 CZ1.000  CZ1.000   10    CZ1.000   20 CZ1.005                                CZ1.010  15   ←セルの挿入で CZ1.010  CZ1.010   30                    CZ1.020 30    下げる作業を CZ1.015                                CZ1.030  10 毎日行ってます。 CZ1.020  CZ1.020   11   CZ1.020    20       CZ1.040  40 CZ1.025 CZ1.030  CZ1.030   11   CZ1.030    10 よろしくお願いします。

  • エクセル 条件付でセルを非表示にしたいのですが

    教えていただけるとうれしいです。 A列:数値を個々に入力 B列:B1=A1-100、B2=A2-100、... という表を作った場合、 例えばA3に数値未入力の場合は、A3=0と認識されるため、B3は-100になります。 これを表示させたくないのですが、A列に数値未入力の場合、対応するB列の行のセルには何も表示させないという方法はありますでしょうか? 未入力の場合は表示せず、0を入力した場合は-100と表示させたいのです。

  • Excel セルに入力したURLを表示する方法

    こんにちは。 Excel2010で、セルに入力したURLをくっつけて表示する方法はありませんか? 具体的に申し上げます。 仕事でAmazonの商品情報をExcelにまとめる必要があります。AmazonにはASINコードという物があり、商品ページを開く際もASINコードを入力する事で、商品ページが開けます。 ASINコード:[B009OYOSGA] の商品の場合、[http://www.amazon.co.jp/dp/]に続けてASINコードを入力すると、その商品ページを直接開けます。 http://www.amazon.co.jp/dp/B009OYOSGA この法則を利用して、A列にASINコードを入力すると、B列に商品のURLが表示される様にしたい。というものです。(URLをコピペするのが面倒なので) これは計算式等ではできませんか? よろしくお願いします。

専門家に質問してみよう