エクセルの特定のセルの値が変化したらマクロを自動実行させたい。
エクセルの特定のセルの値が変化したらマクロを自動実行させたい。
エクセルにてシート1のB5に英数字を入力すると
シート2のA列を検索し同じ値があるとその行のB列にある値をH6に表示をします。
【例】
シート1のB5に「A5684」と入力
シート2
A B
1:A5682 パイン
2:A5683 リンゴ
3:A5684 バナナ
シート1のH6に「バナナ」と表示される
シート2のA列にない場合はメッセージボックスで「データがありません」と表示します。
またシート3のA1に数字を入れておき、以下のマクロ、
'Sheet3から印刷すべき連番を獲得します。
Worksheets("Sheet3").Select
Range("A1").Select
番号 = ActiveCell
連番 = "A" & Application.WorksheetFunction.Rept("0", 5 - Len(番号)) & 番号
'Sheet3の番号セル「B1」を更新します
番号 = 番号 + 1
ActiveCell.FormulaR1C1 = 番号
'Sheet1のセル「H7」欄に連番を表示します。
Worksheets("シート3").Select
Range("B1").Select
ActiveCell.FormulaR1C1 = 連番
Worksheets("シート1").Select
Range("H6").Select '調べたいセルを記入
If IsError(ActiveCell.Value) Then
errval = ActiveCell.Value
Select Case errval
Case CVErr(xlErrDiv0)
MsgBox "#DIV/0! エラー"
Case CVErr(xlErrNA)
If vbOK = MsgBox(" データがありません") Then Exit Sub
End Select
End If
Sheets("シート1").PrintOut Copies:=1
Range("B5").Select
Selection.ClearContents '消去
Range("B5").Select
End Sub
でシート1のH7に(=シート3!B1)として
印刷ごとに1、2、3、と連番を入れています。
フォームで作成したボタンを押すとH6とH7の値が印刷されます。
そしてB5の値がDeleteされ(よってH6は#N/Aとなる)
B5にカーソルが行って入力待ち状態になるようにしてあります。
これで、シート1のB5の値が変化又はH6が変化したら
印刷ボタンを押して印刷ではなく自動印刷されるように出来ますか?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = B And Target.Row = 5 Then
を使いましたが
「コンパイルエラー」とか
Targetの所が色つきになって「End Sub」が必要です。
となってうまく出来ません。
お願いします。
お礼
マクロで出来るようになりました、いろいろご迷惑をおかけしました。