• ベストアンサー

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

マーク(●、▼)の付いた氏名を入力ボタンクリックで下欄の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
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォームボタン値をセルに連続入力

    フォームボタンの値をクリックするたびにExcelセルに連続入力又、セル範囲を左クリックで示した後、ボタンクリックで範囲内に値が入力したいのですがVBAコードなどどなたか解る方よろしくお願いします。

  • セル指定後マクロ実行ボタンでオートフィルタ選択

    氏名に応じた記号手入力後、記号の個数の値セルをアクティブし選択ボタンをクリックしたらその記号A のみがオートフィルタ選択できるのでしょうか?VBAでどなたかお解りになる方よろしくお願いします。

  • VBA セルに入力されている数値でセルを指定する

    Excel VBA初心者です。 Sheet1のA1セルに10、A2セルに3を入力しています。 この入力したセルの数値を参照して、 Sheet2の「Cells(10,3)」(C10セル)を青(Interior.ColorIndex = 5)に 書式変更したいのですが、「Cells(”Sheet1.A1の値”,”Sheet1.A2の値”)」の 書き方がわかりません。 Excel2010を使用しています。 よろしくお願いします。

  • 複数指定セル値と合致したセル値を返す

    A,B,C列に添付の値が入力されておりセルE2の値とF2~F7の値が両方一致したものがA,B列にあればC列の値をG列に順々に入力していきたいのですが。 どなたか関数が解る方、欲をいえばVBAコードが解る方ご教授願います。

  • 年月日合致の指定マークがついた氏名を返す

    L列の年月日に合致する2C:2J年月日の下方☆印があればA列氏名をM列に列記したいのですがまた2C:2Jにない場合は順に7C:7J、12C:12Jの年月日も検索し合致する年月日と☆印でA列の氏名を入力したいです。どなたか関数もしくはVBAコードがわかる方ご教授願います。 バージョンはoffice Excel2013です。

  • Excel VBAでは可でユーザーは入力不可のセル

    C5のセルはユーザーが入力できて、 C5セルに入力された値に応じてVBAで C7セルに処理した値を表示させたいのですが、 C7のセルはユーザーは入力(選択)できないようにしたいのです。 具体的には、 C5セルの書式設定の保護タブのロックを解除して ホームタブのセルグループの書式▼でシートの保護を選択して 表示される「シートの保護」のダイアログで デフォルトのままOKボタンをクリックすると C5セルのみ入力できて C5セル以外は入力できなくなります。 ユーザーにはこの状態にしておきたいのですが、 VBAでC7セルに入力できるようにする方法はないでしょうか。 (Windos7, Excel2010)

  • 入力があれば指定のセルに飛ぶようにしたい

    今、C列とD列のみロックをはずして選択できるようになっています。 エクセルはオプションで下方向にも右方向にも設定できますが、どちらの設定の人でも、 C1セルに入力をしてEnterを押したらC3セルに飛び(C2ではありません、またC2セルは ロックしません)、C1セルに入力せずC1セル上でEnterを押したらD1セルに飛ぶように したいです。どのようなマクロのコードを組めば良いか途方にくれています。どのような コードか教えていただければ幸いです。。

  • エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセル

    エクセルVBAについてお尋ね致します。数式が入力されたセルを異なるセルの条件によって「値」のみ残す方法を模索しております。 使用する列および行の例 列=A、B  行=5~10、15~20、25~30(A列、B列共通) 上記対象セルの内訳 A列(参照セル)=数値 ※空欄の場合もあります B列(変更セル)=数式(Aセル数値 * ○○%) ※B1セルの例:=IF(A1="","",A1*10%) のような数式が記入されております。 (例) Private Sub CommandButton1_Click() ’参照セルの指定 ("A5:A10","A15:A20","A25:A30") のようなコード*** ※現在はAセルの範囲としておりますが、後に変更の可能性を有しますので範囲指定が可能な形式を望みます。 ’変更セルの指定 セル指定のコード*** ※現在はBセルとしておりますが、これも後に変更の可能性を有しますのでA・B・Cのような入力(もしくはA=1、B=2、C=3)による指定可能な形式を望みます。 ’参照セル(Aセル)に数値が入力されている場合、数式から得られた変更セル(Bセル)の値を”値のみ”で残す。 実行コード*** ※参照セル(Aセル)が空欄の場合は変更を望まないので、変更セル(Bセル)は何も致しません。(数式のまま残す) End Sub このようなマクロを望んでおります。 イメージとしては数値がAセルに入力されていた際に同じ行のBセルにおいて右クリックコマンド内〔コピー〕 → 〔形式を選択して貼り付け〕 → 〔値〕の貼り付けを行うことをご想像下さい。 列や行の変更が予想されるので変更が可能なことを望んでおりますが、結果が伴えば他の体裁は気に致しません。 お手数ですがご教授宜しくお願い致します。 以上

  • 時間をvbaでセルに1:00と入力する場合

    セルにvbaで時間として、1:00と入れたいのですが、 Range("A2") = #1:00# とすると、自動で Range("A2") = #1:00:00 AM# になってしまい、実際にセルにも「1:00:00 AM」と入力されてしまいます。 そもそもvba上で時間をコードとして打つ場合は、#で囲うでいいんですよね? 時間をvbaでセルに1:00と入力する場合は、どうすればいいですか?

  • 入力されている行を判別する方法

    こんにちは。 私の質問に関心を持って下さりありがとうございます。 教えて頂いてばかりで恐縮ですが、エクセルVBAに詳しくて親切な方がいらっしゃいましたら教えていただけないでしょうか。 例えば、Sheet1のセルA1をダブルクリックして、Sheet2のセルC10にSheet1のセルA1の値を入力する場合、以下のコードで処理できます。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target = Range("A1") Then Cancel = True Worksheets("Sheet2").Range("C10") = Worksheets("Sheet1").Range("A1") End If End SUB でも、このコードだと、Sheet1のセルA1を何度ダブルクリックしてもSheet2のセルC10にしか入力されません。 Sheet2のセルC10に入力されている場合、それを判別して、C10の下のセルC11に入力され、更にC11に入力されている場合にはC12に入力されるようにしたいのですが、よく分かりません。 ご存知の方がいらっしゃいましたら、どうかご教授いただけないでしょうか。 宜しくお願い致します。

このQ&Aのポイント
  • 私達の部署と他部署のリーダーとの関わり方に悩んでいます。報連相の食い違いや仕事の遅延があり、改善策を考えています。
  • Bチームのリーダーとの関わりがうまくいっていません。意見の食い違いや仕事の進捗についての情報共有が十分でないため、改善策を模索しています。
  • Bチームのリーダーとの関係がうまくいっていません。私達の仕事のやり方や進捗についての認識の差があり、コミュニケーション改善が必要です。
回答を見る