• 締切済み

Excel VBAでの数値転記の自動化

現在、手作業で数値を貼り付けている作業をマクロで自動化したいです。 ファイルは2つで、参照元となるファイル“α”と、数値を貼り付けるファイル“β”※添付資料参考 ファイルαの、店舗数は15、商品は10商品程あります。 ファイルβは、商品毎に横方向に1ヶ月分。縦方向に6ヶ月分の欄があります。シート枚数は10枚程です。 ファイル名“β”の上部に日付を入れるセルを設置し、“2024/4/1”もしくは“060401”と入力しマクロボタンを押すと、指定したフォルダ内から、【●●日報060401】というファイルを探す。 【●●日報060401】のシート名“当日”の商品アのA店~F店までの数値は、“β”ファイルのシート名“商品ア”の6か月分の日付の行から4/1を探し、その列に張り付ける。 商品イ以下も、同様の動きをさせたいです。 よろしくお願いいたします。

みんなの回答

  • luka3
  • ベストアンサー率74% (297/399)
回答No.2

日付を入力するセルがどこにあるのか自信が無くて、独立したシートでも、商品のシートでも対応したつもりですが問題があればすみません。 βにあるシート数でループさせようか悩みましたが、上記の問題があったので、シートごとの商品名で処理するようにしました。 店舗名は一切使っておらず、αとβで同じ順番で並んでいる前提です。 Const 日付セル = "A1" Const 店舗数 = 10 Sub 日付別コピー() Dim 日付 As Date, filename As String, wb As Workbook, ws As Worksheet 日付 = ActiveSheet.Range(日付セル).Value ' 日付 4/1 を想定 文字列060401の場合は要修正 filename = "●●日報" & Format(日付, "eemmdd") & ".xlsx" ' αファイル名 Set wb = Workbooks.Open(filename:=filename, ReadOnly:=True) ' 読み取り専用で開く Set ws = wb.Sheets("当日") 商品別コピー "商品ア", 日付, ws 商品別コピー "商品イ", 日付, ws ' 必要数分繰り返し wb.Close End Sub Sub 商品別コピー(商品名 As String, 日付 As Date, ws As Worksheet) Dim ts As Worksheet, rSrc As Range, rDst As Range Set ts = ThisWorkbook.Sheets(商品名) ' 商品名と同じ値のセルを探す(コピー元) Set rSrc = ws.UsedRange.Find(商品名, LookAt:=xlWhole) ' 日付セルと同じ値のセルを探す(コピー先) Set rDst = ts.UsedRange.Find(日付, LookAt:=xlWhole) If rDst.Address(False, False) = 日付セル Then Set rDst = ts.UsedRange.FindNext(rDst) ' もしも日付セルだったら再検索 ' 店舗数分コピー rSrc.Offset(1, 0).Resize(店舗数, 1).Copy rDst.Offset(1, 0) End Sub

  • t_hirai
  • ベストアンサー率27% (156/573)
回答No.1

恐らく数万円は貰える仕事だと思いますので、ここで答えてくれる人は少ないかと。 クラウドワークスなどで仕事をしてくれる人を探してはどうでしょうか?

関連するQ&A

  • エクセルで日付を自動入力したい…

    エクセル2003にて自動で日付、曜日が入力できる方法を教えください。 現在、日曜、祭日除く27(←MAX営業日数分)の日報の台紙シートを、12ファイル(12ヶ月分)作っています。 (1)A1のセルに日付   例;平成19年9月10日 (2)A2のセルに曜日   例;(月) (3)シート名に     例;10月 ←日付+曜日をこの形式。次は11火        という形式で日々入力しています。 シート一枚ずつに上記の作業をしています。         マクロや数式の設定等で手順を簡略化できませんでしょうか??? 毎日の作業なので効率化したく色々勉強したつもりですが改善できずに困っています。 わかる方教えて下さい。よろしくお願いします。

  • エクセルで「ファイル保存名」を自動作成したい

    エクセルで、複数の店舗で使用する「販売日報」を作成しております。 各店舗からいただくこの日報は別のシステムで取り込みを行う為、 ファイル名を統一する必要があり、店舗側で勝手にファイル名を作成 できないように、例えば、日報のエクセルのシート内に「ファイル保存」 ボタンを作成し、ファイル名を自動作成するマクロを登録したいと思って おりますが、マクロはほとんど分からず、いいアイデアが浮かびません。 どなたかお知恵をお貸しいただけないでしょうか? ■ファイル名は、下記のように「販売日報」を先頭にして店舗名_保存日_ 保存時間の体裁を考えてます。  ファイル名:販売日報_(店舗名)_(日付)_(時間)   ※(店舗名)は販売日報(エクセル)内で「A1セル」など固定した    場所に入力されており、その値を参照したい。   ※「日付」「時間」も自動作成したい。 うまくお伝えすることができませんが、イメージとしては「ファイル保存」 ボタンを押すと、エクセルで左上の「ファイル」-「名前を付けて保存」 を押した際に表示される「保存先を選択する画面」が表示され、ファイル名 には、『販売日報_(店舗名)_(日付)_(時間)』が既に表示されている、 といった具合です。 いろいろネットを介し調べましたが、ぴったりのものがなく悩んでおりました。 何卒宜しくお願いいたします。

  • エクセル(マクロ?)の照合についてです。

    関数やマクロを全く知らない素人で恐縮ですが、 ご教授くださると幸いです。 アとイ2つのシートがあり、両シートのCDE列には2桁から4桁までの 数値が各々ランダムに300行ほど入ってます。 そこで、アの各行に「イのCDE列と全て同数もしくは プラス、マイナス5以内までの行があるか」を照合したいものの、 他にもシートが多く困っています。 ※このような作業はエクセルだと無理でしょうか? 大変恐れ入りますが、よろしくお願い申し上げます。

  • EXCEL VBAで行・列の該当データ

    出荷データ一覧のマクロを作りたいのですが、抽出の仕方で苦戦してます。 A2から下方向に商品名、B1から右方向に日付の入ったシートのA3から任意のセル(変わります)に 数値のデータが入ってます。 商品の有無により出荷日は日付通りにいかずランダムになります。 例えば、数値データセルを任意で黄色に塗りつぶしたところの数値と該当する商品名を抽出するにはどうすればいいのでしょうか。 現在は以下のようなマクロを必要数値以外を削除して実行していますが、新しいものを思案中です。 Sub 行列を非表示() Rows("2:200").Hidden = True Columns("B:AO").Hidden = True Selection.SpecialCells(xlCellTypeConstants).EntireRow.Hidden = False Selection.SpecialCells(xlCellTypeConstants).EntireColumn.Hidden = False End Sub

  • 条件のあったシートへデータを転記するマクロ

    よろしくお願いします。 ブック内にシート名でマスターシートと在庫日報入力シートの2つがあります。在庫日報シートのA1に日付、A列3行目以降に商品コード、B列3行目以降に各商品名、F列3行目以降に各商品の在庫数量が入っており、毎日更新されます。マスターシートには縦A列3行目以降に日付が入っており、また横1行目(A1,B1,C1....)に各商品名が百以上記載されています。今まで、以下のマクロで在庫日報入力シートの在庫数量をマスターシートの対応するセルに転記していました。(縦の日付を検索し、横の商品名を検索し対応する場所に在庫数量を転記) Private Sub CommandButton1_Click() Application.DisplayStatusBar = True Dim LastR, idxR As Long, trgR, trgC If MsgBox("日付は正しいですか", vbQuestion + vbOKCancel) = vbOK Then With Worksheets("在庫日報入力") LastR = .Range("A65536").End(xlUp).Row trgR = Application.Match(.Cells(1, 1), Worksheets("マスター").Range("A:A"), 0) For idxR = LastR To 3 Step -1 trgC = Application.Match(.Cells(idxR, 1), Worksheets("マスター").Range("1:1"), 0) If IsNumeric(trgR) And IsNumeric(trgC) Then Worksheets("マスター").Cells(trgR, trgC + 1) = .Cells(idxR, 6) Else .Cells(idxR, 1).Interior.ColorIndex = 3 End If Application.StatusBar = "マスターシートに転記中・・・進行状況 " & idxR & "" Next idxR End With Application.StatusBar = False MsgBox "終了しました。(処理件数=" & LastR- 3 & "件)", vbOKOnly: Exit Sub End If End Sub 今までこれで良かったのですが、今度、マスターシートを削除して、各商品名毎にシートを作成します。そのため、それぞれの商品名シートに在庫日報シートのデータを転記するように変えたいのです。商品名シートはそれぞれA列3行目以降に日付が、となりのB列に在庫数が入るようになっています。 在庫日報シートの各商品に対応した商品名シートを見つけて、そのA列から在庫日報と同じ日付を見つけて、その行のB列に在庫日報シートの在庫数量を転記する。というものです。商品名シートは百以上あり名前は文字列です。 今までのマクロは教えてgooで教えていただきながら作りました。すいませんが、またご教授をお願いします。

  • EXCELのデータを転記したいです。

    関数やマクロは全く分からない初心者ですが、下記のことがEXCELで出来るか教えてください。 一つのBookに顧客名のあかさたな別でシートをつくり、顧客情報管理をしています。 内容は、日付と、顧客名と、電話番号、販売商品、値段、です。 今は、別のBookに、商品部門別にシートをつくり、同じ内容をコピーして貼っています。 これを、自動で転記するようにしたいのですが、出来るのでしょうか? 出来る場合、ざっくりでいいのでどういう機能を使うのか教えてください。

  • エクセルのVBA ファイルの移動

    同一のフォルダーに保存されたファイルを 異なるフォルダーに保存するマクロを作成したいです 例えば ファイル名 フォルダ名 あいう様 aaa → ア あいう様 あいう様 bbb → ア あいう様 いいい様 aaa → イ いいい様 かきく様 ddd → カ かきく様 さしす様 aaa → サ さしす様 たちつ様 ccc → タ たちつ様 保存先にフォルダ名がなければ作成して保存するマクロを 作りたい場合はどのようにすればいいでしょうか? 下記のURLを使い、ファイル名を変更したあと 上記の通りにフォルダー移動がしたいです https://www.relief.jp/docs/017844.html

  • エクセルで同フォーマットの過去の日報を参照する日報ファイルを作りたい

    こんにちは。 皆さんの力をお貸しください。 現在業務で作成している日報があり、日報ファイルには「1」から「31」のシートがあります。本年分の日報の昨年データに昨年のまったく同じフォーマットの日報の数値を参照させています。しかしながら、現状では1日ごとに式を別々に入力しなければならず(参照するシート名を変えています)、作業グループで編集すると当然すべてのシートが同じ式になってしまいます。 できることならば1のシートに式を入れ、それ以降のシートは「過去ファイルの次のシートを参照する」のような参照ができれば、毎月の日報作成が非常に便利になるのですが、何かよい方法はありませんでしょうか? 宜しくお願いします。

  • エクセル:毎日蓄積するデータに数値の変化があったら色を変えて強調したい

    お願いします。 エクセルの条件付き書式などに関連するものと思います。 エクセルで商品の在庫の管理をしています。 縦軸に商品名、横軸に日付とし、毎日それぞれの商品の残数を記入しています。(日付ごとにどんどん右方向へ蓄積しています。)記入自体は別シートからマクロで自動的に入ってきます。 商品点数が多いわりにあまり数値変化がないので、数値の羅列だけだとどの商品に変化があったのかわかりにくく困っています。 そこで、前日の数値(左横のセルの数値)と変化があった場合、文字の色が変わるようにしたいと思います。 条件付き書式と関数を組み合わせてうまくできそうなかんじなのですが、自力ではできませんでした。 文字色が変わったその次の日は、また黒色にもどっても、そのままの色をキープしてもどちらでもかまわないと考えています。 条件付き書式にはこだわりませんので、同様の結果が得られれば結構です。 ヒント程度でもいただければありがたいと思います。 よろしくお願いいたします。

  • EXCELのシート間でのマクロ計算

    毎日の日報をEXCELのワークシートで作成しております。日報は、その「日」の売上とその「月」の売上(累計)を出すようにしております。月の売上(累計)は、前日の売上のシート(前日分)+本日の売上のシート(本日分)で表しております。日報は、項目がたくさんあるので、月売上を出す場合、シート間での毎日の計算作業が面倒です。ですから、この計算作業をマクロで出来ればと思っております。1つのシートでマクロを使用することは解るのですが、シート間でマクロを利用するやり方がわかりません。 なにとぞ、よろしくお願いいたします。

専門家に質問してみよう