- ベストアンサー
EXELのマクロ?
あるシートのセルF1に”0001”って入力した後、 ”出力済”コマンドボタンをクリックしたら(ボタンのみ設置済み) 「DB」シートのA列の”0001”を検索して、同シートのX列に”○”って入力するようにしたいんですが、具体的にどのようにしたらよいでしょうか?
- みんなの回答 (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 '-------------------------------------------------------
その他の回答 (1)
- UTwTU
- ベストアンサー率24% (218/879)
マクロを使わないとダメですか? 使わなくてもIF関数使っていけるのではと思いますが。 「あるシート」の名前が「Sheet2」として、DBシートのA3からA10まで数字が入っているとしたら、X3に「=IF(Sheet2!$F$1=A3,"○","")」と入れて、A10までコピーすればよいと思います。 Sheet2のF1とA列の数値が一致したものに○が入るようになると思います。一致しなければ空白のままになると思います。
お礼
一部、訂正しましたが完璧にこちらの思うことと一致いたしました。ありがとうございました。 Else MsgBox Sh1.Range("F1").Text & " は、見つかりませんでした。"