• ベストアンサー

EXELのマクロ?

あるシートのセルF1に”0001”って入力した後、 ”出力済”コマンドボタンをクリックしたら(ボタンのみ設置済み) 「DB」シートのA列の”0001”を検索して、同シートのX列に”○”って入力するようにしたいんですが、具体的にどのようにしたらよいでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 ・あるシートのセルF1に”0001”って入力した後 ・「DB」シートのA列の”0001” もしかしたら、マクロの検索でつまづいたのではないでしょうか? 簡単なようでいて、気をつけなければいけない点がいくつかあります。 それは、F1 に入力された 0001 は、書式の、「0000」となっていて、「DB」シートのA列のデータも、書式の「0000」になっていなくてはいけません。 なお、プロシージャ名を除いた部分を取り出して貼り付けてください。 これは、このまま貼り付けても、ボタンのイベントとして認識しません。 '------------------------------------------------------- Private Sub CommandButton1_Click() Dim Sh1 As Worksheet, Sh2 As Worksheet Dim Kensaku As Long, c As Range '========== 設定部分 ==================  Set Sh1 = Worksheets("あるシート")  Set Sh2 = Worksheets("DB") '====================================== Kensaku = CLng(Sh1.Range("F1").Value) Set c = Sh2.Columns(1).Find(Kensaku, LookIn:=xlValues) If Not c Is Nothing Then   If Sh2.Cells(c.Row, 24).Value <> "○" Then    Sh2.Cells(c.Row, 24).Value = "○"    Beep   Else    MsgBox "既に、出力されています。", vbInformation   End If Else   MsgBox Sh1.Range("F1").Text & " は、見つかりませんでした。", vbInformation End If End Sub '-------------------------------------------------------

Hazam
質問者

お礼

一部、訂正しましたが完璧にこちらの思うことと一致いたしました。ありがとうございました。 Else   MsgBox Sh1.Range("F1").Text & " は、見つかりませんでした。"

その他の回答 (1)

  • UTwTU
  • ベストアンサー率24% (218/879)
回答No.1

マクロを使わないとダメですか? 使わなくてもIF関数使っていけるのではと思いますが。 「あるシート」の名前が「Sheet2」として、DBシートのA3からA10まで数字が入っているとしたら、X3に「=IF(Sheet2!$F$1=A3,"○","")」と入れて、A10までコピーすればよいと思います。 Sheet2のF1とA列の数値が一致したものに○が入るようになると思います。一致しなければ空白のままになると思います。