B1のセルに品番を入れたらA1に商品名、C1に単価、D1に小計が表示されるような請求明細とその明細をもとに納品日別で納品場所、使用期間、金額の入った請求一覧を1セット作り、それの単価に3%乗せた明細と一覧をもう1セット作りたいと思っています。
1つの商品名に対して品番は複数、1つの品番に対して単価は1つです。
自分はパソコン教室などに行ったことがなく、本もどれがいいのか判らないので+-*/、オートsumと関数、書式設定などはヘルプを参照して覚えました。会社の業種はリース業なのですが伝票類・在庫管理類、超アナログな会社です。
現在は全て1個1個入力してsheetとsheetをリンクさせて電卓叩いて・・・という作業をしているのですが、量が増えて締め切りに間に合わなくなってきてしまい質問させていただいた次第です。
よろしくお願い致します。
No.5ベストアンサー
- 回答日時:
まずは型式、品名、単価の一覧データベースを作りましょう。
「データベース」という名前のシートを作り、A列に商品名、B列に品番、C列に単価をあらかじめ入力・作成しておきます。下のような感じですね。┃ A ┃ B ┃ C ┃
━╋━━━╋━━━╋━━━╋
1┃型 式│品 番│単 価│
━╋───┼───┼───┼
2┃AAA│ 1│ 10│
━╋───┼───┼───┼
3┃BBB│ 2│200│
━╋───┼───┼───┼
4┃CCC│ 3│170│
━╋───┼───┼───┼
5┃DDD│ 4│510│
━╋───┼───┼───┼
6┃ │ │ │
━╋───┼───┼───┼
7┃ │ │ │
━╋───┼───┼───┼
次に請求明細のシート(シート名はどのような名前でも結構です)のA1のセルに「型式」、B1のセルに「品番」、C1のセルに「単価」、D1のセルに「小計」、E1のセルに「個数」と入力しておきましょう。後からE列に個数を入力すれば自動的にD列に小計が表示されるようになります。
さて、それが済んだら、Altを押しながらF11キーを押してVisual Basicエディタを開きます。
左側の「プロジェクト」と書かれた枠に「Microsoft Excel Object」と書かれた部分があります。そこにシートの名前の一覧がありませんか?あったら、請求明細のシート名をダブルクリックします。すると画面右側が灰色から白色に変わりましたね。そこに以下をコピーしてください。
'ここから------------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ErrHand
Application.ScreenUpdating = False
Application.EnableEvents = False
If Target.Column = 2 And Target.Row <> 1 Then
If Target.Value = Empty Then
Cells(Target.Row, 1).Value = Empty
Cells(Target.Row, 3).Value = Empty
Cells(Target.Row, 4).Value = Empty
Cells(Target.Row, 5).Value = Empty
Else
With Worksheets("データベース").Range("B:B")
Set x = .Find(Target.Value, LookAt:=xlWhole)
If Not x Is Nothing Then
Cells(Target.Row, 1).Value = Worksheets("データベース").Cells(x.Row, 1).Value
Cells(Target.Row, 3).Value = Worksheets("データベース").Cells(x.Row, 3).Value
Cells(Target.Row, 4).Value = "=C" & Target.Row & "*E" & Target.Row
Else
MsgBox ("対応する型式がありません")
Cells(Target.Row, 2).Activate
End If
End With
End If
End If
ErrHand:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'ここまで------------------------------------------------------------------------------------------
はい。これで処理は終了です。Visual Basic エディタを終了してください。
後は請求明細のシートのB列に品番を入力するたびにA列に商品名、C列に単価、D列に小計(C列の値×E列の値という数式)が入ります。後でE列に個数を入力すると小計が反映されます。
B列を削除すると、その行についてA列からE列まで全てのデータが削除されます。
ただし、「複数セルを選択して削除」には対応しておりませんので悪しからず。
すごく丁寧な回答ありがとうございます。マクロとVBAの差も判っていないような私ですが、とても判り易くて助かりました。
自動で出てくるって素晴らしいですね!久しぶりに感動しております。
教えていただいたコードを元にVBAの勉強をしようと思います。ありがとうございました!
No.4
- 回答日時:
>アクセス、会社のパソコンに入ってないのです。
そうですか。
書類の作成にかかる人件費等を考えると
入れたほうがいいと思うのですが・・・。
計算式でも出来ると思いますが
おそらく複雑になると思うのでVBAを使って+計算式が
いいと思います。
●サンプルコードを以下に書きます。
Sheet1のデータから品番(Like検索)のデータを
読み込んでSheet2に書き出すコードです。
----------------------------------------
※サンプルマクロ ParamOutputData
----------------------------------------
Option Explicit
Sub ParamOutputData()
Dim strKeyword As String
Dim strJouken As String
strKeyword = InputBox("品番を一部入力してください。")
Do While strKeyword = ""
strKeyword = InputBox("値が入力されていません。" & vbCrLf & _
"品番を一部入力してください。")
Loop
strJouken = "*" & strKeyword & "*"
Application.ScreenUpdating = False
Sheets("Sheet2").Activate
Cells.Clear
With Sheets("Sheet1")
.Range("A1").AutoFilter Field:=3, _
Criteria1:=strJouken
.Range("A1").CurrentRegion.Copy _
Destination:=Sheets("Sheet2").Range("A1")
.Range("A1").AutoFilter
End With
Sheets("Sheet2").Columns("A:F").AutoFit
Application.ScreenUpdating = True
End Sub
---------------------------------------------
(1)マクロを上記のマクロ名で登録して
-----の間をモジュールを入力するフォームページに
まるっとコピーしてください。
(2)Sheet1に下記のデータを入れてみてください
---------------------------------------------
No.商品名品番単価
1ああああAA50
2ああああBB100
3いいいいCC200
4いいいいDD300
5いいいいEE500
6うううFF20
----------------------------------------------
(3)結構短い記述でVBAも案外便利だったりします。
サンプルコードを元に色々いじってみてください。
まずデータベースを別に作ったほうが
いいですね。
ご参考になれば。
アクセス、私の残業代1ヶ月分で余裕で買えるんですけど本当にそういう事に理解の無い会社なもので。
サンプルマクロありがとうございます。「自動で出てくるってすばらしい!」とオートSUMを初めて使った時以来の感動を覚えました。データベースもどきは作っているので、サンプルを元に色々やっています。
度々の回答、ありがとうございました。
No.3
- 回答日時:
SUMが使えるのなら次はVLOOKUPを覚えられると
こんなケースではとても便利です。
ただし、A1に品番を入れ、B1に品名を返すような表の作りにしておく必要があります。
このVLOOKUPを使う前に、
品番、商品名、単価の3つの項目がある対応表を作っておく必要があります。
マイクロソフトUSERSからです。
http://www.microsoft.com/japan/users/office_expe …
本を買われる前に少しでもお役に立つといいですね。
また、具体的な応用の方法は、
「どこそこのセルから表を作って、
どこに入力したらどこに商品名が出て。。」
という書き方をしてくだされば回答がつきやすいです。
maccheroniさん アドバイスありがとうございます。
教えていただいたページ、存在を知りませんでした。本を買う前にこのページで勉強します!
質問の仕方まで教えてくださってありがとうございます。上記のページでもう少し勉強してから、また判らない時に質問しようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Excel(エクセル) 【エクセル】元データからの引用 5 2022/04/18 10:22
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
真空管 6550のメーカー
-
送信エラー時、レポートメール...
-
1点の辻の字に変換したいがエク...
-
ローマ字入力で「トゥ」を入力...
-
「未使用」と「不使用」ってど...
-
チケット何回もエラーは高額請求?
-
PCの内蔵メモリにデータは残る?
-
インスタの設定について。 イン...
-
データ用HDDの別のPCへの乗せ替え
-
コマンドプロンプトで表示が多...
-
PPTのスライド表示の画面の位置...
-
Excelでエラー(#N/Aなど)値を...
-
バッチファイルでキー操作を行う。
-
応募規定に「40字☓40行で書く...
-
もしセルが"#N/A"なら~をする...
-
VLOOKUP関数についての質問です...
-
入力時に母音の小文字打つ時、...
-
VBユーザーフォームで時間入力
-
日本通信の当月利用データ量は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで時刻を自動入力する方法
-
Excel VBA 答えが0になってし...
-
Excelのデータが重いのはなぜで...
-
エクセルで、「袋詰め問題」を...
-
EXCEL VBA 区切り位置のプログ...
-
エクセルマクロについて データ...
-
エクセルで漢字がうまく並び替...
-
エクセルで30日以内に同内容の...
-
合計が0の行を削除
-
エクセルで隣のセルと同じ数字...
-
excelで下一桁を選択する方法
-
大きい順に並べかえたい。 ので...
-
エクセルで既に入力済みの大量...
-
ローマ字入力で「トゥ」を入力...
-
「未使用」と「不使用」ってど...
-
1点の辻の字に変換したいがエク...
-
Excelでエラー(#N/Aなど)値を...
-
チケット何回もエラーは高額請求?
-
コマンドプロンプトが実行中か...
おすすめ情報