• 締切済み

項目に対する備品をリンク

x0000xの回答

  • x0000x
  • ベストアンサー率52% (67/127)
回答No.1

マクロで処理するなら以下のコードを"Sheet2"のコードとして貼り付けしてください。 Sheet2のB列に入力した部屋名をSheet1から検索して表示します。 (既に入力済みの場合は、部屋名の入力されているセルでF2,Enterと 続けて押下することで、再入力した事として処理できます。) コードの張り付け方法は、 (1)Sheet2のシート見出しでマウス右クリック。 (2)表示されたメニューの「コードの表示」をクリック (3)以下のコードを空白部分に貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) 'Sheet2以外は処理しない。 '選択セルが複数存在する場合は処理しない 'B列の入力変更以外は処理しない '入力文字列が空の場合は処理しない If ActiveSheet.Name <> "Sheet2" Then Exit Sub If Target.Count <> 1 Then Exit Sub If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then Exit Sub Dim st As Worksheet Dim stR1 As Long Dim stR2 As Long Dim stC2 As Integer Dim heya As String Dim cnt As Integer 'Sheet1を取得 heya = Target.Value '入力した部屋名 Set st = Sheets("Sheet1") stR2 = Target.row 'Sheet2の入力セルの行位置を初期設定 stC2 = 6 'Sheet2の最初の表示列番号を初期設定 cnt = 0 '表示個数を初期化 For stR1 = 4 To 1390 If st.Cells(stR1, 3) = heya Then '入力した部屋名を見つけた If stC2 > 17 Then stC2 = 6 '格納列を先頭に戻す stR2 = stR2 + 1 '格納行を1行UP End If ActiveSheet.Cells(stR2, stC2) = st.Cells(stR1, 7) '備品 ActiveSheet.Cells(stR2, stC2 + 1) = st.Cells(stR1, 15) '数量 '次の格納列位置を設定 stC2 = stC2 + 2 '表示個数を加算 cnt = cnt + 1 End If Next If cnt = 0 Then MsgBox "[ " + heya + " ] は検索できませんでした。" '入力した部屋名に再度位置付ける ActiveSheet.Cells(stR2, 2).Select Else '次の部屋名入力セルに位置付ける ActiveSheet.Cells(stR2 + 1, 2).Select End If End Sub

isikawaK
質問者

お礼

ありがとうございます。 コードを実行しようとするとエラー end subが必要ですとでます。 どう対処したらよいですか?

isikawaK
質問者

補足

すみません。 sheet1の名前は1階~4階でsheet2の名前は部屋別リストです

関連するQ&A

  • 連続していないセルを別シートに効率よくリンクしたい

    シート1のセルC4 7行下にも氏名が入力されています。 (氏名が100名入力されています。) この氏名をシート2の別シートにリンクをして効率よく7行おきコピーしたいのです。 普通にコピーすると行番号がずれてしまいます。 ご教示お願い致します。

  • エクセルにおけるシート間のリンクについて

     いつもお世話になっております。  エクセル(Office2019)におけるシート間のリンクについて、お教えください。  下記のようなシートがあるとします。  10人しか入力していませんが、実際は500人ほどいます。 【シート名「購入者」】 A列      B列 1 氏名   住所 2 あああ アアア 3 いいい イイイ 4 ううう ウウウ 5 えええ エエエ 6 おおお オオオ 7 かかか カカカ 8 ききき キキキ 9 くくく ククク 10 けけけ ケケケ 11 こここ コココ  上記「購入者」シートの氏名と住所を領収書シートに入力してある領収書の枠(セル)にリンクさせたいと思います。  ただ、この領収書シートは200枚分が横にズラッと並んでいます。  実際の領収書の形を表示するのは難しいので、「購入者」シートの氏名と住所をどこのセルにリンクさせたいか文字で表記します。 【シート名「領収書」】 シート名「購入者」のA2セル(あああ) → シート名「領収書」のC4セルへリンク シート名「購入者」のB2セル(アアア) → シート名「領収書」のC5セルへリンク シート名「購入者」のA3セル(いいい) → シート名「領収書」のJ4セルへリンク シート名「購入者」のB3セル(イイイ) → シート名「領収書」のJ5セルへリンク シート名「購入者」のA4セル(ううう) → シート名「領収書」のQ4セルへリンク シート名「購入者」のB4セル(ウウウ) → シート名「領収書」のQ5セルへリンク シート名「購入者」のA5セル(えええ) → シート名「領収書」のX4セルへリンク シート名「購入者」のB5セル(エエエ) → シート名「領収書」のX5セルへリンク シート名「購入者」のA6セル(おおお) → シート名「領収書」のAE4セルへリンク シート名「購入者」のB6セル(オオオ) → シート名「領収書」のAE5セルへリンク シート名「購入者」のA7セル(かかか) → シート名「領収書」のAL4セルへリンク シート名「購入者」のB7セル(カカカ) → シート名「領収書」のAL5セルへリンク シート名「購入者」のA8セル(ききき) → シート名「領収書」のAS4セルへリンク シート名「購入者」のB8セル(キキキ) → シート名「領収書」のAS5セルへリンク シート名「購入者」のA9セル(くくく) → シート名「領収書」のAZ4セルへリンク シート名「購入者」のB9セル(ククク) → シート名「領収書」のAZ5セルへリンク シート名「購入者」のA10セル(けけけ) → シート名「領収書」のBG4セルへリンク シート名「購入者」のB10セル(ケケケ) → シート名「領収書」のBG5セルへリンク シート名「購入者」のA11セル(こここ) → シート名「領収書」のBN4セルへリンク シート名「購入者」のB11セル(コココ) → シート名「領収書」のBN5セルへリンク  一応、規則正しく7つ飛びずつ横にずれていく配置となっています。  インターネットでこのようなリンクがスムーズにできる関数等があるか調べましたが、思ったようなものは見つかりませんでした。  数がそれほど多くなければ一つ一つ手入力していくこともできますが、200枚もの領収書に手入力していくのは大変です。  上記のようなリンクがスムーズにいく方法をお教えくださいますよう、よろしくお願いいたします。

  • Excelの関数に関して教えて下さい

    パソコンはWindos98です。 ExcelのAシートに     A列    B列    C列    D列    (品名) (ロット) (容量)  (数量) 1行 みかん   123   100g  3 2行 りんご   456   100g  4 3行 ピーチ   789   120g  2 とある場合に新たなBシートの A1のセルに「りんご」と入力した場合に A1 品名 A2 ロット A3 容量 A4 数量 Aシートの2行目のデータをBシートのそれぞれの欄に 自動的に入るという関数はありますでしょうか? ちなみにAシートのりんごのデータは2行目にくるか 3行目にくるかは分からないのでどこの行に入力しても Bシートに反映されるというようにしたいのです。 補足もしますのでどうか宜しくお願いします。

  • シート間リンクの一括設定

    エクセルで、下記のようなシート(1)「B列」からシート(2)へのリンク設定を 一括でおこないたいのですが、何かいい方法はありませんでしょうか? -----------------エクセル同一ファイル--------------------- 【シート(1)】 行番  A列        B列  1  あいうえお  2  かきくけこ    注釈(1)  3  さしすせそ  4  たちつてと    注釈(2)  5  なにぬねの    注釈(3) (以下続く 数千行) 【シート(2)】 行番   A列       B列  1   注釈(1)     注釈内容  2   注釈(2)     注釈内容  3   注釈(3)     注釈内容 (以下続く) --------------------------------------------------------------- ※【シート(1)】の“B2”セルをクリックすると、【シート(2)】の“B1”セルへリンク。 同様に【シート(1)】“B4”セルをクリックすると、【シート(2)】の“B2”セルへリンク・・・・と、 注釈内容を別シートへリンクさせたいのですが。 現状では、【シート(1)】のB列「空白以外のセル」のみを表示させて、各セルごとに ハイパーリンク先のシートとセルを一つずつ指定しています。 【シート(1)】B列の注釈あり/なしはランダムで、連番付けし、 【シート(2)】へは、それぞれ連番順に記載されます。 このリンクをなんらか一括で設定できればと思うのですが、ご指摘頂ければ幸いです。

  • 住所録のデータのリンクについて

    (A)住所録の作成 シート1には B2セル:会社名、C2セル:住所、D2セル:電話番号 E2セル:有効期限のデータを入力しています。 (データ内容は随時、追加・変更があります。) A2セルに 五十音で見出しをつけています。「あ」「い」・・・ シート2の名前を「あ」にした場合、シート1の「あ」で始まる会社名をリンクさせたい。 シート1の「あ」のすべてがシート2の行にどんどん増えていくようにしたいのです。 (B)あるいは シート2「あ」、シート3「い」、シート4「う」・・・・・と五十音順に設定 シート2「あ」には、「あ」から始まる会社名 a2セル:あ、b2セル:会社名、c2セル:住所、d2セル:電話番号、E2セル:有効期限のデータを入力 以降のシートにも、「い」から始まる会社名・・・を入力 シート1に各シートのデータを集めてリンクさせたいのです。 (会社名の数が、各シート毎によって差があります。) 今から作成していきますので、どちらの方法でもいいのですが・・・ なぜ集計するのかというと、「有効期限」の確認をしたいためです。 たとえば、H23年において、有効期限が切れている会社の名前を知りたいのです。 お教えくださいますようお願い申しあげます。

  • エクセルのリンク?のさせ方を教えてください。

    一覧表(シート)にある決められた数字を別シートに自動的にリンクさせたいです。 詳しく言うと、1月、2月、、、と月別にシートをわけて、一覧表の中のセルに「1」という数字を入力したら、1月のシートのセルに自動的に入力されると言ったような・・・?? できれば、その行に入力されている値も全て自動的にそちらへリンクされれば嬉しいのですが・・・。

  • エクセルでセルを挿入したい

    エクセルの「シート1」に、入荷表を作成していて、その「シート1」のセルに入力した商品名や数量が入力してあります。「シート2」に{シート名$セル$}の形でリンクするようにしてあります。 「シート1」の入力済の行の間(例えば5と6の間に1行追加)に1行追加したら、「シート2」もその行(5の下に1行追加)が追加されるようにはできないのでしょうか? 現状だと、「シート1」に追加すると、「シート2」は{$セル$}の番号が変動して見た目は変わらなくなります。

  • データのリンク

    こんばんは、教えて下さい EXCEL2003を使っています。shee1はA5:A8 , B5:B8 , C5:C8の結合セルが4行単位で, A列、B列、C列2400行まで続いています。 sheet2には、下記のような型で沢山のデータがあります A2 A-1-1 (sheet1! A5:A8結合セル) B2 A-B-1(sheet1! B5:B8結合セル) A3 A-2-2 (sheet1! A9:A12結合セル) B3 A-B-2(sheet1! B9:B12結合セル) A4 A-3-3 (sheet1!A13:A16結合セル) B4 A-B-3(sheet1!B13:B16結合セル) sheet2 A,B,C列のデータを、shee1結合セルに旨くデータリンクを掛けたい

  • 広範囲から数字を抽出する場合

    エクセルで注文表を作っています。 B1から右方向に日付が(5/1,5/2,5/3,5/4・・・) A2から下方向には製品名、B2から右と下方向は空白のセルです。 この空白のセルには、製品が出荷された数量を入力します。 (1製品に付き、出荷されるのは月に1回、数字が入るのは1行毎に1つのセルのみです) このカレンダー式のリストを基に、別のシートに出荷日と出荷数量のみを、それぞれ表示したいと思っています。 広い範囲の中で数字の入力されているセルと、その該当日を抽出したい場合、どのようにしたら良いのでしょうか。 関数でできれば一番ありがたいのですが・・ 宜しくお願いいたします。

  • エクセルでリンク先の文字を特定のセルに表示させてたい。

    エクセルでリンク先の文字を特定のセルに表示させてたい。 例えばSheet1のA3に「あ」、A4に「い」、A5に「う」…という文字を入力しています。 Sheet2のC4に「ア」、D6に「イ」、f10に「ウ」…というように文字を入力をしています。 Sheet1のA3の「あ」からはSheet2のC4に、A4の「い」からはSheet2のd6に…というふうに それぞれリンクをはりました。 普通でしたら、それぞれのリンク先へとび、そのsheetが表示されるんですが、これを すべてSheet1のA1へ表示させたいのです… どなたか、よろしくお願いします。