VBAについて教えてください。
左側に名前、右側に商品名(50個)という表があります。
商品名
名前 紙 消しゴム ペン ・・・・・・
Aさん 2 0 1
Bさん
Cさん
商品数が多くてエクセルで右の方まで追うのが手間なので、必要なものと数だけを左上のセルなどに一気に表示するVBAを作成したいです。
(Aさんという名前を入力して、GOボタンを押すと、下の方に商品名と個数が表示される)
※必要数が0個の物は表示不要です。
Aさん [GO]
下記に商品と必要数がが表示されるイメージです。
紙 2
ペン 1
これを下記の場所の様な別場所に表示させたいです。
・オートシェイプの四角枠の中
・どこかの一つのセル(多いと見づらいかもしれないですが)
・どこかの場所にいくつかのセルを使って表示
沢山色々なサイトを探したのですが、VBA初心者で読んでもわからないことだらけでした。
勉強もしたいのですが、勉強する間もなく会社から求められておりまして急ぎ作成したいです。
もし教えて頂ける方がおりましたら幸いです。
ちょこちょこと手作業を自動化していきたいという方向ですが、会社はVBAなど使用できるものがおりませんので大変困っております。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんばんは!
一例です。
↓の画像のような配置で、元データはSheet1にあり、Sheet2に表示するようにしてみました。
>Aさんという名前を入力して、GOボタンを押すと・・・
マクロを実行するとインプットボックスが表示され、検索したい名前を入力するようにしています。
標準モジュールにしてください。
Sub Sample1()
Dim j As Long, cnt As Long
Dim c As Range, myName As String
Dim wS As Worksheet
Set wS = Worksheets("Sheet2")
myName = Application.InputBox("検索したい氏名を入力")
With Worksheets("Sheet1")
Set c = .Range("A:A").Find(what:=myName, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
wS.Range("A:B").ClearContents
wS.Range("A1") = myName
wS.Range("A2") = "商品名"
wS.Range("B2") = "数量"
cnt = 2
For j = 2 To .Cells(1, Columns.Count).End(xlToLeft).Column
If .Cells(c.Row, j) <> 0 Then
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(1, j)
wS.Cells(cnt, "B") = .Cells(c.Row, j)
End If
Next j
Else
MsgBox "該当名なし"
Exit Sub
End If
End With
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
「沢山色々なサイトを・・・読んでもわからない」とのことですが、ここの回答を見ても分かるとは限りませんね~。
とりあえず、わたしの好みでサンプル作ってみました。解読してみて下さい。Sub sample()
Dim lastCol As Long
Dim i As Long
Dim j As Long
Dim c As String
Columns("A:A").ClearComments
lastCol = Cells(2, Columns.Count).End(xlToLeft).Column
For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
c = ""
For j = 2 To lastCol
If Cells(i, j) <> 0 Then
c = c & Cells(2, j).Value & " " & Cells(i, j).Value & Chr(10)
End If
Next j
If c <> "" Then
With Cells(i, "A")
.AddComment
.Comment.Visible = False
.Comment.Text Text:=c
End With
End If
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳のテキストがいつのまに...
-
Excel:任意の列だけCSV形式で...
-
日頃、感じる不便なものってあ...
-
Windows10で、拡張子が.pyのフ...
-
「筆記用具」という言葉はノー...
-
PrintScreenキーが効かなくなり...
-
職場でもらったメモ、付箋をそ...
-
シャチハタのキャップが取れやすい
-
教科書などに初めから書いてあ...
-
書いたり消したりできるラミネ...
-
VBAでメモ帳にコピペをしたいの...
-
Wordで 文字の一部にモザイクを...
-
プロジェクタだと動画が映らない
-
「覚書」、「メモ」、「備忘録...
-
消しゴムがくっついて、跡が取...
-
ウィンドウ11 メモ帳が文字化...
-
名刺が大量に不要になった時
-
指を動かす人・・・。
-
小6でこの絵上手いですか? ア...
-
PCの画面上に文字や線を引ける...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモ帳のテキストがいつのまに...
-
Excel:任意の列だけCSV形式で...
-
小6でこの絵上手いですか? ア...
-
プロジェクタだと動画が映らない
-
PrintScreenキーが効かなくなり...
-
ヨドバシドットコムも置き配し...
-
教科書などに初めから書いてあ...
-
くっついた消しゴムかすをとる...
-
消しゴムがくっついて、跡が取...
-
書いたり消したりできるラミネ...
-
「筆記用具」という言葉はノー...
-
「覚書」、「メモ」、「備忘録...
-
Wordで 文字の一部にモザイクを...
-
日頃、感じる不便なものってあ...
-
フリクションペンで書いたもの...
-
Windows10で、拡張子が.pyのフ...
-
CDやDVDに書くマジックペン
-
指を動かす人・・・。
-
VBAでメモ帳にコピペをしたいの...
-
元の状態に戻すことを何と言う...
おすすめ情報