- ベストアンサー
エクセルマクロで支店コードを自動反映する方法
- エクセル初心者でも簡単にできる支店コードの自動反映方法をご紹介します。エクセルのシート1にある支店名と各支店別コードの表から、コードが入っていない発注データのシート2に自動的に反映させることができます。
- エクセルのマクロを使用することで、シート1の支店名から対応するコードを取得し、シート2の該当する列に自動的に貼り付けることができます。この方法を使用すれば、300以上の支店に対しても簡単にコードを反映させることができます。
- マクロのボタンをクリックするだけで、シート1とシート2のデータを自動的に照合し、コードを反映させることができます。発注データの数や支店の有無に関係なく、効率的に作業を行うことができます。詳しい手順や設定方法は以下の記事で解説しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
sheet1のB2~B302に支店名、C2~C302に支店コードが入力されているものとします。 Sheet2のB2~Bxxxに支店名が入力されているものとします。 新しいsheet2が追加されたとき支店名の左(A列)に支店コードを追加するマクロです。 まず、全部マクロでやると面倒なので、Sheet1のC1につぎの式を打ち込んでおきます。 =OFFSET($C$2,MATCH(B1,$B2:$B302,0)-1,0) これは、A1に支店名を入力すると、支店コードを返してくれる式です。 マクロは次の通りです。 Sub ShitenCode() CC = 2 For RR = 2 To 1000 Shitenmei = Worksheets("Sheet2").Cells(RR, CC).Value If Shitenmei = "" Then Exit For Worksheets("Sheet1").Cells(1, 2) = Shitenmei CCode = Worksheets("Sheet1").Cells(1, 3) Worksheets("Sheet2").Cells(RR, CC - 1) = CCode Next End Sub sheet2の支店名を読み、それをsheet1のB1に送ります。 すると、その支店に対する支店コードが計算されてC1に表示されます。 つぎにC1の値をsheet2の支店名の右(A列)に送ります。 sheet2の支店名の列に空白行があると誤動作します。 sheet1に存在しない支店名がsheet2にあるとコードがエラーになります。 エラー処理をしていませんので、実情に合わせて考えてください。
お礼
回答いただきありがとうございます。 上記の通り、やってみます。(結果は別途記載します!)