![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.4ベストアンサー
- 回答日時:
早速マクロを作ってみました。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRow As Long
Dim mySyukko As Integer
Dim myZaiko As Integer
Dim myName As String
If Target.Column = 5 Then
If Target.Value <> "" Then
mySyukko = Target.Value
myZaiko = Target.Offset(0, -2).Value
Target.Offset(0, -2).Value = myZaiko - mySyukko
Target.Value = ""
myName = Target.Offset(0, -1).Value
Target.Offset(0, -1).Value = ""
If Worksheets.Count = 1 Then
Worksheets.Add after:=Worksheets(1)
Worksheets(2).Range("A1").Value = "商品名"
Worksheets(2).Range("B1").Value = "持出数"
Worksheets(2).Range("C1").Value = "担当者"
Worksheets(2).Range("D1").Value = "日付"
Worksheets(2).Columns("D:D").ColumnWidth = 10
End If
myRow = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Target.Offset(0, -4).Copy Destination:=Worksheets(2).Cells(myRow, 1)
Worksheets(2).Cells(myRow, 2).Value = mySyukko
Worksheets(2).Cells(myRow, 3).Value = myName
Worksheets(2).Cells(myRow, 4).Value = Date
End If
End If
End Sub
前回と同じ手順で実行してみて下さい。
また何かありましたら、お知らせ下さい。
No.2
- 回答日時:
早速マクロを組んでみました。
参考にして下さい。Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRow As Long
If Target.Column = 5 Then
If Target.Value <> "" Then
Target.Offset(0, -2).Value = Target.Value
Target.Value = ""
If Worksheets.Count = 1 Then
Worksheets.Add after:=Worksheets(1)
Worksheets(2).Range("A1").Value = "商品名"
Worksheets(2).Range("B1").Value = "在庫数"
Worksheets(2).Range("C1").Value = "担当者"
End If
myRow = Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row
If myRow > 1 Then
Worksheets(2).Rows("2:2").Insert Shift:=xlDown
End If
Target.Offset(0, -4).Copy Destination:=Worksheets(2).Range("A2")
Target.Offset(0, -2).Copy Destination:=Worksheets(2).Range("B2")
Target.Offset(0, -1).Copy Destination:=Worksheets(2).Range("C2")
End If
End If
End sub
Sheet1のA列を商品名・B列を価格・C列を在庫数・D列を人物名・E列を変更数として、説明します。
1.上のPrivate sub Worksheet_Change(ByVal Target As Range)からend subまでをコピーする。
コピー方法は、上のPrivate sub Worksheet_Change(ByVal Target As Range)からend subまでを選択して青く反転させ、青く反転した範囲の中で右クリック→コピーをクリックする。
2.A列~D列にそれぞれデータを入力する。
3.シートのメニューバーの中のツールをクリックし、マクロ→Visual Basic Editorと順にクリックし、Visual Basic Editorを表示させる。
4.画面右側のVBAProjectと書かれている下のsheet1の上でダブルクリックし、右側の灰色の画面を白くする。
5.右の白い画面の一番上の左端で右クリックし、貼り付けをクリックする。
6.右上端の赤の×ボタンをクリックしてVisual Basic Editorを終了させる。
7.E列に数字を入力すると、商品名・在庫数・人物名がsheet2の2行目に自動的にコピーされる。もし、Sheet2にデータ-があった場合は、1行下にずれて表示される。
このようなことでよろしいのでしょうか。もし違っている時・わからないことがあった時は、ご遠慮なくお知らせ下さい。あなた様の考えられていることが実現できるまで、私でよろしければ一緒に考えてみたいと思います。
ありがとうございました。
早速、実行してみました。4~6のVisual Basic Editorの操作が、若干私のエクセルでは違ったようですが、なんとか教えていただいたマクロは実行できました。
そこで、厚かましいようですが変更したい個所が2点あります。宜しければ教えて頂けないでしょうか?
先ず1点目。シート1のセルE列に「変更数」という項目を置きましたが、ここを「持ち出し数」という風に換えて、「持ち出し数」に入力した際、シート1の「在庫数」から「持ち出し数」引いた値を、再びシート1の在庫数に反映させる事は可能でしょうか?シート2の持ち出し数はそのままです。
2点目。シート2の4項目めのセルに、自動でその日の日付を表示出来ないでしょうか?つまり、シート2には、「商品名」「持ち出し数」「人物名」「日付」を返すようにしたいのですが。
重ね重ね、宜しくお願い致します。
No.1
- 回答日時:
はじめまして。
あなた様の質問の内容がよくわからないのですが、変更を行った人物と変更したセルのデータをコピーして別のシートに貼り付けるという方法ではダメなのでしょうか?それとも、上の方法を自動的に実行したいということなのでしょうか?
もし、自動的に実行するのであれば、私はVBAを使ってマクロを書いてしまいます。
もし、マクロを書く方法がわからないのであれば、そんなに難しいマクロではないので、実行する方法をお知らせすることができるかと思います。その時は、次の点を御知らせ下さい。
1.別シートに返すデータは変更を行った人物と変更したセルのデータだけでよいのか
2.データを返すシートは同じブックの中でよいのか
お手数をおかけしますが、よろしく御願いします。
回答ありがとうございます。返答が遅くなってスミマセン。
質問も言葉足らずで、的を得ない問いを出してしまいましたが、kazuhiko5681さんの仰る通りの事を行いたいのです!
補足として、1.の別シートに返すデータは、変更を行った人物と変更したセルのデータだけでよいのか?という問いですが、プラス、変更したセルのある行の、別のセルも返したいのです。つまり、ひとつの行に「品物名、価格、在庫」と3つのセルがあった場合、ある人物が在庫を1個減らした時に、その「人物名、品物名、変更された在庫」の3つを別のシート(同じブック内)に返したい。と言うものです。
お手数おかけしますが、回答の程、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに複数のマクロ
-
エクセルにて表に入力→一覧に自...
-
従事期間の重複チェック、表示
-
「ドゥ」の簡単なローマ字入力方法
-
googleカレンダーの予定を入力...
-
手作り文字の作り方について
-
Google form グーグルフォーム...
-
1MBでドレくらいの文章を書くこ...
-
PDF 入力途中で改行したい
-
Notionが、テーブルビューを一...
-
JUST PDF 3 傾き補正
-
「ディ」はどう入力すればいい...
-
Office Word [ここに入力] が...
-
一太郎で作った文書をWord変換
-
ワードにて スペースを全て改行...
-
A4のレポート用紙1枚で2000文字...
-
一太郎で作成した文書をコピペ...
-
一太郎をワードに変換
-
作ったマクロを複数のシートで...
-
エクセル2000で、漢数字から算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数セル範囲をコピ...
-
エクセル 細かい条件での切り...
-
従事期間の重複チェック、表示
-
エクセルでのセルへ入力日の記...
-
エクセル マクロ 値のある行...
-
エクセルでのデータ蓄積
-
エクセルでの計量分析のやり方...
-
【エクセルとメモ帳を照合したい】
-
オートフィルターで抽出された...
-
エクセルで苦労してます
-
エクセルで空白の項目セルを削...
-
テキストファイルのデータをエ...
-
エクセルにて表に入力→一覧に自...
-
エクセルの行列方向での並び替え
-
画像のCSVデータをガントチャー...
-
マクロ初心者です。 日がすぎた...
-
マクロの自動実行について
-
エクセル関数について
-
Excel 2007 マクロ AdvancedFi...
-
Google form グーグルフォーム...
おすすめ情報