• 締切済み

excelのマクロについて。

sheetAにデータの一覧があります。 商品aだったらsheetBへ、商品bだったらsheet3へ・・・ という振り分けをボタン一つでできるマクロを作成したいのですが、 どのようにすればいいでしょうか?(vbはあまりわかりません・・・) sheetAにデータをどんどん追加して、ボタン一つで振り分け・・・・ とういうのが理想です。 良い知恵をかしてください。宜しくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

#2のものです。済みません、ミスタイプがあり、ご訂正を願います。 (1)Sheet1のA1:A4に(誤) (1)Sheet1のA1:B4に(正)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

>vbはあまりわかりません・ しかし、「何かをすると、それがキッカケで自動的に何かが行われる」ようにするには、VBAを使わないと出来ないのではないでしょうか。ボタンを沢山貼りつけるのも大変ですし、ボタン無しで考えました。 どうしてもやりたいなら、丸のみする積もりで、下記をやってください。「シートタブをクリックするだけで済むこと」だと思うのですが、それがいやならしようがない。 (1)Sheet1のA1:A4に(シート数が許されるだけ多くても同じ、下へ連ねる) 大阪 sheet2 東京 sheet3 名古屋 sheet4 横浜 sheet5 増やす時は、一旦「表示」「ツールバー」「コントロールツールボックス」の三角定規と鉛筆のアイコンをへこまして 仙台   Sheet6とか増やし、その後凹みをなくしてください。 (2)ワークシート上でツール-マクロ-VisualBasicEditorをクリック (3)プロジェクトウインドウのSheet1をダブルクリック。(表をSheet1に置くのでそれと合わすこと。) (4)メニューバーの下にボックスが対に並んでいますが その下の空白の部分に下記を貼りつける。 Private Sub Worksheet_SelectionChange(ByVal _ Target As Range) If Target.Column <> 1 Then Exit Sub r = Target.Row s = Cells(r, 2) Worksheets(s).Select End Sub 意味は ・セルの選択を変えたら、セルの位置を教えてね、  そしてこのルーチンを実行してね ・もしA列(=1)でなかったら何もせずこのルーチンを ぬける ・選択したセルの行を求める ・選択したセルと同行の、B列(=2)の内容を読み取る ・読み取った内容のシート名のシートを選択する。 ・終わり です。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 何をされたいのか良く解かりません。 目的やデータ構造が不明なので外している可能性が高いです。 Sheetが3枚でSheet1にコマンドボタンを置き、クリックイベントに記入します。 アクティブセルが りんご なら Sheet2 へ、ばなな なら Sheet3 へ転記します。 Private Sub CommandButton1_Click() Dim r As Range ActiveCell.Activate Set r = ActiveCell Select Case r.Value Case "りんご"  With Worksheets("Sheet2")   .Range("A" & .Range("A65536").End(xlUp).Row + 1).Value = r.Value  End With Case "ばなな"  With Worksheets("Sheet3")   .Range("A" & .Range("A65536").End(xlUp).Row + 1).Value = r.Value  End With End Select End Sub

関連するQ&A