• ベストアンサー

マークの付いた氏名を指定セルに入力

マーク(●、▼)の付いた氏名を入力ボタンクリックで下欄のA~CセルにVBAのコードを使って入力したいのですが、また1ヶ所マークを外し再度クリックした場合入力された値が消えるように、どなたかわかる方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

「開発」タブの「挿入」からActiveXコントロールグループに有る「コマンドボタン」をクリックします。 その後にシート上に四角を描くようにしてコマンドボタンを配置します。 コマンドボタンを右クリックして「コードの表示」を選択します。 表示される画面に次のコードを入力します。 Private Sub CommandButton1_Click() Dim n, i As Integer Range("B12:B14").Clear n = 11 For i = 2 To 10 If Cells(i, 2) = "●" Or Cells(i, 2) = "▼" Then n = n + 1 Cells(n, 2) = Cells(i, 1).Value End If Next End Sub 最後に「開発」タブの「デザインモード」がアクティブ状態になっているのでそこをクリックして終了します。

kuma0220
質問者

お礼

有難うございます。非常に助かりました。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

エクセルで必要なデータを抽出したいということですよね。 エクセル 抽出 などで検索するといくつもヒットすると思いますし 方法も沢山あります。 一案ですが、フィルターオプションの機能をご存知でしょうか。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter3.htm を参考にしてみてください。 シート1に  氏名 マーク あいざわ ● ・・・ とデータがあって シート2に   A  B     マーク      ●      ▲  氏名 マーク と準備します。上記サイトのしたがってマクロの記録を実行したら Sub Macro1() Sheets("Sheet1").Columns("A:B").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("B1:B3"), CopyToRange:=Range("A4:B4"), Unique:=False End Sub となりました。 この機能は色々と応用が利くので一度、マスターされることをお勧めします。

kuma0220
質問者

お礼

有難うございます。勉強になりました。