人気マンガがだれでも無料♪電子コミック読み放題!!

現在、Excelで日報を作成しています。

日報に入力したデータが、既存の月報へ反映されるようにしたいのですが、
なかなかうまくいきません。

既存の月報は、1ヶ月分をひとつのブックとし、
その中に各従業員の名前のシートを作成し、保存しています。

今回新たに作成しようとしている日報は、
やはり1ヶ月分をひとつのブックとし、
その中に1~31日のシートを作成し、保存したいと思っています。

今までは、月報しかなかったため、
従業員一人ひとりのシートにデータを入力していたのですが、
これからは1日の終わりに、
日報にデータを入力し、
それを月報に反映する事が出来れば
少しでも効率的になるため、そのように出来れば…と考えています。


添付画像の例では、
【平成25年11月 日報.xlsx】ブックの [1日] シートの、
B4~C6に入力したデータを、
【平成25年11月 月報.xlsx】ブックの [鈴木] [佐藤] [田中] の各シートの、
11/1(金)に、対応するセル(C4~D4)へと反映したいです。


ですが、日報も月報もシート数が多いため
(添付画像の例はシート数を省略しています)、
今後、毎月同じように1ヶ月分のブックを作成していく事を考えると、
どのような参照の仕方や作成の仕方をすれば良いのかわからず、
途方に暮れています。

Excelに詳しくないため、
なるべくわかりやすくお教えいただけると幸いです。
大変お手数をお掛け致します。

Excelに詳しい方、どうかご教示くださいますようお願い致します。

「Excelで日報から月報へとデータ参照を」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (1件)

初級者の方からのこの手のご質問でいつもお答えしているのは、「参照する方向が逆」または「用意するシートが不足」ということです。



ブックを分けるとファイル管理やデータのメンテにいろいろ注意が必要になるので、なるべく同じブック内の別シートなどに、各帳票を作製。各帳票のシート枚数はムダに増やさず、各 1 枚のみとする。月間については、1 人 1 枚。各帳票に表示するデータは、元データとなる長期間の、データベース型の表(Sheet1)から持ってきます。

時刻は、24 時間表記(「13:00」など)で記入。H1 セルには、ショートカットキー Ctrl+; を使うなどして、当日の日付のシリアル値(「2013/12/3」などの形式)を記入。


シート セル             数式              書式

Sheet1 A3  2013/12/2                        標準
Sheet1 D3  8:25                          h:mm
Sheet1 F3  =e3-d3                         [h]:mm
Sheet2 H1  2013/12/3                        ggg" "e" 年 "m" 月 "d" 日("aaa")"
Sheet2 H5  鈴木                          標準
Sheet2 I5  =sumifs(sheet1!d:d,sheet1!$A:$A,$H$1,sheet1!$B:$B,$H5) h:mm
Sheet3 M1  =sheet2!h1                       ggg" "e" 年"
Sheet3 P1  鈴木                          標準
Sheet3 M5  =date(year(M$1),month(M$1),1)              3/14
Sheet3 M6  =m5+1                          3/14
Sheet3 N5  =m5                           aaa
Sheet3 O5  =sumifs(sheet1!d:d,sheet1!$A:$A,$M5,sheet1!$B:$B,$P$1) h:mm

※ I5 をコピーし I5:J7 のセル範囲に貼り付け。O5 をコピーし O5:P9 に貼り付け。


数式もそうですが、セルの書式も大事で、うまく設定できれば添付図のように表示できます。不明な点があれば、質問してください。
「Excelで日報から月報へとデータ参照を」の回答画像1
    • good
    • 1
この回答へのお礼

早速のご回答をどうもありがとうございます。

>ブックを分けるとファイル管理やデータのメンテにいろいろ注意が必要になるになるので、
>なるべく同じブック内の別シートなどに、各帳票を作製。
やはりそうなのですね。
Excel初心者な上、関数がとても苦手なため、
やろうとしている事が複雑過ぎるのではないか…
と不安に思っていました。


>各帳票に表示するデータは、元データとなる長期間の、
>データベース型の表(Sheet1)から持ってきます。
このような発想すらなかったため、とても参考になりました。


>数式もそうですが、セルの書式も大事で、
>うまく設定できれば添付図のように表示できます。
具体的に数式やセルの書式を全て記載して下さった上、
実際に例を作成して画像として添付して下さったおかげで、
関数の使い方や書式の使い方がとてもわかりやすく、
初心者の私でも理解出来ました!

ファイル管理のあり方や、
教えていただいた具体的な方法をもとに、
今後活かしていきたいと思います。
本当にどうもありがとうございました!

お礼日時:2013/12/05 20:10

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 日報 月集計・年集計について

エクセルで日報を作成しています。
今回、日報のデータを月ごと・年ごと、さらに人別・工事番号別に集計することになり、
どのように構成したらいいか考えており、アイデアをいただけないかと相談させていただきます。

日報の入力項目等は以下の通りです。
・日付
・社員No.(15名程)
・氏名
・工事番号(現在は30件程ですが日々増えます)
・件名
・作業No.(20項目:項目ごとに科目が振り分けられます→作業No.1~3と5は労務費といった具合です)
・作業内容
・作業時間
・科目
(今年度から単価が変わり、前年度の科目と今年度の科目(工事番号で区別しています)で単価が異なります)
・単価

現在は、これらの項目を入力し、人ごとに入力、工事番号と科目で合計時間を出しております。

このデータを月と年で集計をし、人ごと・工事番号ごとのデータとして見られるものにしたいのですが、
ブック内の構成を考えて行き詰っております。
一人ずつブックを作成したらいいのか、
一人1シートで作成し月と年のシートを作成したらいいのか・・・

取っ掛かりから行き詰っていますのでこの先が不安ですが、
こうしたらいいのでは?といったアイデアをいただきたいと思います。

どうぞよろしくお願いいたします。

エクセルで日報を作成しています。
今回、日報のデータを月ごと・年ごと、さらに人別・工事番号別に集計することになり、
どのように構成したらいいか考えており、アイデアをいただけないかと相談させていただきます。

日報の入力項目等は以下の通りです。
・日付
・社員No.(15名程)
・氏名
・工事番号(現在は30件程ですが日々増えます)
・件名
・作業No.(20項目:項目ごとに科目が振り分けられます→作業No.1~3と5は労務費といった具合です)
・作業内容
・作業時間
・科目
(今年度から単価が変わり、前年...続きを読む

Aベストアンサー

今までのことを整理しました

月別表 Sheet名は4月,5月,6月,7月,8月,9月,10月,11月,12月,1月,2月,3月
年計表のSheet名を年計とします

月別Sheet
A列・日付…日付のユーザ設定でGE.MM.DD(AAA)で和暦で曜日まで表示可能
B列・社員No
C列・氏名 式=VLOOKUP(B2,$K$2:$L$21,2,FALSE)
D列・工事番号
E列・件名
F列・作業No
G列・作業内容=VLOOKUP(F2,$O$2:$P$20,2,FALSE))
H列・作業時間
I列・科目
J列 空白
K列・社員No.=IF(年計!A3="","",年計!A3)
L列・社員名=IF(年計!B3="","",年計!B3)
M列・作業時間合計=SUMIF($B$2:$B$19,K2,$H$2:$H$20)
N列 空白
O列・作業No.=IF(年計!T3="","",年計!T3)
P列・作業内容=IF(年計!U3="","",年計!U3)
Q列・作業時間合計=SUMIF($F$2:$F$20,O2,$H$2:$H$21)
※工事番号、件名、科目にも入力規則により選択入力
 にし、作業時間も例えば30分単位の刻みリスト
 を入力規則に適用するとマウスだけの入力が可能になります。

年計シート
1~2行目を見出し行
セルA1「単価見出し」セルB1単価
セルC1~O1セル結合して「社員別時間集計」
セルR1~AF1をセル結合して「作業別時間集計」

A列・社員No.
B列・氏名
C列・4月(時間)='4月'!M2
D列・5月(時間)='5月'!M2

N列・3月(時間)='3月'!M2
O列・年合計=SUM(C3:N3)
P列・金額=$B$1*O3*24

Q空白
R列・作業No.
S列・作業内容
T列・4月

AF列・年合計=$B$1*AF3
AG列・金額=$B$1*AF3*24

今までのことを整理しました

月別表 Sheet名は4月,5月,6月,7月,8月,9月,10月,11月,12月,1月,2月,3月
年計表のSheet名を年計とします

月別Sheet
A列・日付…日付のユーザ設定でGE.MM.DD(AAA)で和暦で曜日まで表示可能
B列・社員No
C列・氏名 式=VLOOKUP(B2,$K$2:$L$21,2,FALSE)
D列・工事番号
E列・件名
F列・作業No
G列・作業内容=VLOOKUP(F2,$O$2:$P$20,2,FALSE))
H列・作業時間
I列・科目
J列 空白
K列・社員No.=IF(年計!A3="","",年計!A3)
L列・社員名=IF(年計!B3="","",年計!B3)
M列・作業時間合計=SUMIF($B$...続きを読む

Qエクセル 日報売上を月報に展開するマクロで困っております。準備するシート(1)日報入力シート

エクセル 日報売上を月報に展開するマクロで困っております。

準備するシート
(1)日報入力シート
(2)月報売上シート

日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する

一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。

以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。

日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。

ご教示頂けば助かります。
よろしくお願い致します。

Sub ボタン1_Click()
Dim FRng As Range
Dim Rw As Long
With Sheets("月報売上シート")
If Range("B3").Value = "" Then
MsgBox "入力日を記入してください。", vbExclamation
Exit Sub
End If

Set FRng = .Rows(1).Find(Range("B3").Value, lookat:=xlWhole)
If Not FRng Is Nothing Then
Rw = .Cells(Rows.Count, FRng.Column).End(xlUp).Row
If Rw < 3 Then Rw = 3 Else Rw = Rw + 1
.Cells(Rw, FRng.Column).Resize(, 3).Value = Range("B7:D7").Value
Else
MsgBox "転記先日付が 見つかりません。", vbCritical
Exit Sub
End If
End With
Set FRng = Nothing
MsgBox "転記しました。", vbInformation, "完了"
End Sub

エクセル 日報売上を月報に展開するマクロで困っております。

準備するシート
(1)日報入力シート
(2)月報売上シート

日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する

一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。

以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。

日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。

...続きを読む

Aベストアンサー

Private Sub Sample()
  Dim lngMaxRow As Long
  Dim NippoWs As Worksheet
  Dim GeppoWs As Worksheet
  Dim rng As Range
  Dim lngRow As Long
  Dim lngCol As Long

  Set NippoWs = Workbooks(ThisWorkbook.Name).Sheets("日報入力")
  Set GeppoWs = Workbooks(ThisWorkbook.Name).Sheets("月報売上")

  lngMaxRow = GeppoWs.Cells(Rows.Count, 1).End(xlUp).Row

  Set rng = GeppoWs.Range("A:A").Find(NippoWs.Cells(3, 2))

  If NippoWs.Cells(3, 2) = "" Then
    MsgBox "日付が入力されていません"
    Exit Sub
  ElseIf rng Is Nothing Then
    MsgBox "日付がありません"
    Exit Sub
  End If

  lngRow = 0
  For lngRow = 1 To lngMaxRow Step 1
    If NippoWs.Cells(3, 2) = GeppoWs.Cells(lngRow, 1) Then
      GeppoWs.Cells(lngRow, 2) = NippoWs.Cells(6, 2)
      GeppoWs.Cells(lngRow, 3) = NippoWs.Cells(6, 3)
      GeppoWs.Cells(lngRow, 4) = NippoWs.Cells(6, 4)
    End If
  Next
End Sub

こんな感じでどうでしょうか?

Private Sub Sample()
  Dim lngMaxRow As Long
  Dim NippoWs As Worksheet
  Dim GeppoWs As Worksheet
  Dim rng As Range
  Dim lngRow As Long
  Dim lngCol As Long

  Set NippoWs = Workbooks(ThisWorkbook.Name).Sheets("日報入力")
  Set GeppoWs = Workbooks(ThisWorkbook.Name).Sheets("月報売上")

  lngMaxRow = GeppoWs.Cells(Rows.Count, 1).End(xlUp).Row

  Set rng = GeppoWs.Range("A:A").Find(NippoWs.Cells(3, 2))

  If NippoWs.Cells(3, 2) = "" T...続きを読む

Qエクセルで日報の集計を簡単にしたい

生産管理の日報をエクセルで作成しようとしています。

”1”~”31”までの31日分の「日報シート」とその生産管理できる「1ヶ月の統計表」、
計32枚のシートで1つのエクセルとしたいと思っています。

(1)一日の全生産量(2)機械3台分の処理(3)かかった人件費
それぞれを「日報シート」に記入(その他諸々の内容も日報に記載)
そこから、抽出した(1)~(3)のデータを「1ヶ月の統計表」で参照できるようにする。

その「1ヶ月の統計表」には、
4/1(金)  =IF('1'!$A$1>0,'1'!$A$1,"")  =IF('1'!$A$2>0,'1'!$A$2,"")  =IF('1'!$A$3>0,'1'!$A$3,"")
4/2(土)  =IF('2'!$A$1>0,'2'!$A$1,"")  =IF('2'!$A$2>0,'2'!$A$2,"")  =IF('2'!$A$3>0,'2'!$A$3,"")
4/3(日)  =IF('3'!$A$1>0,'3'!$A$1,"")  =IF('3'!$A$2>0,'3'!$A$2,"")  =IF('3'!$A$3>0,'3'!$A$3,"")
4/4(月)  ......

という感じで、"日付"! を1日ずつカウントアップさせたいです。

一度、上記関数をぶつ切りにエクセルに貼り付けて、
=○&○&○&○&○としたことがあったのですが、
たくさんの数字を抽出させたい為、すごく効率の悪いものになりました。
簡単に出来る方法がありましたら、ご教授お願いします。

また、これを作成した後、日付シート1日を削除してしまうと、
その部分は、#REF!となってしまいます。
この復旧(若しくは回避)する方法がありましたらこれもお願いします。

生産管理の日報をエクセルで作成しようとしています。

”1”~”31”までの31日分の「日報シート」とその生産管理できる「1ヶ月の統計表」、
計32枚のシートで1つのエクセルとしたいと思っています。

(1)一日の全生産量(2)機械3台分の処理(3)かかった人件費
それぞれを「日報シート」に記入(その他諸々の内容も日報に記載)
そこから、抽出した(1)~(3)のデータを「1ヶ月の統計表」で参照できるようにする。

その「1ヶ月の統計表」には、
4/1(金)  =IF('1'!$A$1>0,'1'!$A$1,"")  =IF('1'!$A$2>0...続きを読む

Aベストアンサー

 最初の

=IF('1'!$A$1>0,'1'!$A$1,"")

と入力されているセルの数式を

=IF(INDIRECT(ROW(B1)&"!A"&COLUMN(A$1))>0,INDIRECT(ROW(B1)&"!A"&COLUMN(A$1)),"")

に変更してから、そのセルをコピーして、1日~31日にかけての、日付の右側の3列のセルに、貼り付けると良いと思います。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセル 日報に入力すると月報に総合計金額が表示できるようにしたい

エクセル使用方法についての質問です。よろしくおねがいします。

現在日報に金額を毎日入力しているのですが、それらを別のファイル
(月報)に自動的に反映させ、総合計金額を表示できるようにしたいです。

すぐわかる~等の本も参考してみたのですが、知識不足の為か見つける事ができませんでした。


手が空いたときにでも教えて下さい。よろしくおねがいします。

Aベストアンサー

例えば、
”Book1のセルA1”に”Book2のA1~A30”までの総合計金額を表示する場合、こんなのは如何でしょうか?
Book1のセルA1に、
=SUM([Book2]Sheet1!$A$1:$A$30) と入力。

Q業務日報作成したいんです

業務日報作成したいんです
介護職に従事しています。
訪問介護・居宅・訪問看護の各部署の業務日報を作成するように
指示されたのですが、参考となるフォーマットがなかなか見つかりません。
特に、訪問介護事業所の業務日報はどこも作成していないようで
行政のホームページにも様式集がなく困っています。

単に、1日の出来事(新規利用者の有無・既存利用者の特記・苦情)等が記載できればいいのですが
どなたかお知恵を拝借できないでしょうか。

Aベストアンサー

> 特に、訪問介護事業所の業務日報はどこも作成していないようで

そんな事も無いと思いますが。
作成しているけど、わざわざwebで公開していないだけとかでは?


普通の日報、作業報告書に、必要ならば手を入れればよいのでは。

Microsoft Office テンプレート - 日報
http://office.microsoft.com/ja-jp/templates/CT001075220.aspx
Microsoft Office テンプレート - 業務報告書(日報)
http://office.microsoft.com/ja-jp/templates/TC001224543.aspx

Qエクセルのシート間で連続した日付データを作りたい

オートフィル機能をシート間の串刺しでやりたいと考えています。
現在、日付ごとに1日から31日までの31枚のシートがあります。
1枚目のシートのA1セルに1月1日と入力すると、その後30枚のシートのセルA1にそれぞれ1月2日~31日までの日付が自動で表示できるようにしたいのですが、どのようにすれば楽に処理できるのでしょうか?
なお、A2セルには曜日も表示させる予定です。
ご存じの方がいらっしゃいましたら、ぜひお知恵を拝借させて下さい。

Aベストアンサー

マクロで対応するならこんな感じでできます。
Alt+F11でVBEを起動して、「挿入」「標準モジュール」でこのコードを貼り付けで、エクセルで「ツール」「マクロ」からこのコードを実行してください。

Sub sample()
Dim i As Integer
For i = 1 To 30
Sheets(i + 1).Range("a1").Value = Sheets(i).Range("a1").Value + 1
Next i
End Sub


ちなみに曜日のほうは、一番左のシートを選択し、Shiftキーを押しながら一番右のシートを選択して作業グループにしてB1セルに「=A1」と入力してセルの書式設定でユーザー定義で「aaaa」などとしてください。

QExcelで日別に入力されたデータを月別に集計するにはどうしたらいいのでしょうか。

Excelで月別の集計をしたいのですが
例えば
  日付    数量
10月25日  200
10月27日  150
10月30日  120
11月 1日  200
11月 3日  150
のように、日付が飛び飛びで連続していなくい日々の数量を、上の行から順番に入力していった場合に(月が替わる行が決まっていない)月別の集計を取る方法はないでしょうか。


 

Aベストアンサー

どのように集計する月を指定するのかが書かれていませんが、例えば11月分の合計を出したいなら

1)11月までの合計から10月までの合計を引く方法
 =SUMIF(A:A,"<=11/30",B:B)-SUMIF(A:A,"<=10/31",B:B)

2)月が「11」のB列を合計する方法
 =SUMPRODUCT((MONTH(A2:A100)=11)*(B2:B100))

なども考えられます。

でもエクセルなら一番オーソドックスな方法はピボットテーブルでしょう。C列に
 =TEXT(A1,"YYYY/MM")
で「2008/11」のような文字列を生成しておいてピボットテーブルで集計すれば、シート上にある全ての月の合計が一発で求められます。
ピボットテーブルの使い方はGoogleなどで検索したらたくさん見つかります
http://www.viplt.ne.jp/tomy/pibot.html

Qエクセルで日誌作成&自動日付挿入

WINXP excel2000です

EXCELで日誌を作成します。
EXCELブックに日付が入っていないシートを1ヶ月分作成
各シートは、同じ書式
一番手前のシートの日付部分のセルに「2004/08/01」と入力すると、その下のシートの日付部分に対応したセルに8/2.8/3.8/4と言うように自動的に日付が挿入される。

というような関数は作成できるでしょうか?


よろしくお願いいたします。

Aベストアンサー

 まず一番最初の日付のセルに 2004/08/01 と入力し、そのセルの書式設定の表示形式タブでユーザー定義を選択します。次に種類の所の下にある欄に、yyyy/mm/dd と指定します。

 次の日のセルで =(1日を指定したセルの番地)+1 と数式を入力し、その後2日のセルの数式を月末までの日付のセルにコピーします。

 2日から月末までのセルの書式設定で最初に設定した所を m/d と変更すれば良いと思います。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング