プロが教えるわが家の防犯対策術!

エクセルでボタンオブジェクトを作りクリックすると実行するようなマクロのを登録方法はわかるのですが、特定のセルB2に数値を入力してEnterKeyを押した際に実行するようにマクロを登録するにはどうするのでしょう。マクロの編集画面で 最初の行が Sub となっていますが、あそこに何かをいれたらいいのでしょうか?教えてください。よろしくお願いします。

A 回答 (3件)

#1です。

補足に関して
全セル対象なら
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("sheet2").Cells.Font.Size = 12
End Sub
範囲指定するなら
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("sheet2").Range("a1:c10").Font.Size = 12
End Sub
上記の真中の行を#1と組み合わせて使うこと。
Sheet1のどこを変化させてもフォント設定が行われる。それで宜しいか。変化を反映させるセルを限定するなら、また別の知識が必要です。マクロの初めはイベントに手を出すのは難しいと言うことです。
    • good
    • 0
この回答へのお礼

ありがとうございました。無事目的通りのものができました。

お礼日時:2004/10/31 15:00

関数をつくればどうでしょう?


ツール->マクロ->Visual Basic Editor を選び
挿入->標準モジュール を選びます
そこに 

Function hoge(dum As Range)
'↓↓↓ここに好きな命令を書いてください。

MsgBox "aaa" ' 例です

'↑↑↑ここまで
End Function

等を書きます。
一旦保存して

EXCELのシートに戻りましょう

特定のセルB2が変わったらでしたね
B2以外のセル(範囲外のセル)に =hoge(B2)
って入れてください 複数でしたら B2:C5など出来ます

Worksheet_Changeは他のセルが変わった時もイベント(処理)が
されますので 非常に時間がかかりますよ。
    • good
    • 1
この回答へのお礼

ありがとうございました。関数ではどうやら プロパティは変更できないようです。関数は引数から数値を返すのみのようです。

お礼日時:2004/11/02 12:32

シート(Sheet1と仮定)のメニューで、ツール-マクロ-VBEをクリックする。


VBE画面になりますが、そのVBAProjectの中のシート名等のツリー表示の中に、Sheet1があると
思いますので、そこをダブルクリックします。
すると画面が出てきます。その上部の(General)の▼をクリックして、「Worksheet]をクリック
、右の(Declarations)の▼をクリックして
「Change」をクリックします。
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
下のSelectionChange部分が出てしまったら、範囲指定して、Delキーで抹消してください。
間の行にプログラムコードを打ち込んでください。
シート(Sheet1)に戻り、どこかのセルにデータを入れて、予想通りなるかチェックします。
Changeイベントは色々欠点もあるイベントですが
自分が使う程度なら使い物になるでしょう。
もう一つ、変化を捉え変化させると、このイベントに該当し、処理がぐるぐる回りになることです。
それで一旦その働きを止めて、処理が終わると、元へ戻してます。なかなか初めての場合は難しいです。
下記は右隣のセルに+10した数をセットしてます。
漢字をいれたら?->他人に使ってもらうには、チェックがどんどん必要になり、コードが増えます(略)。さらに知識が必要になります。実用に耐えるマクロを作るのは難しいですよ。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Offset(0, 1) = Target + 10
Application.EnableEvents = True
End Sub

この回答への補足

ありがとうございました。sheet1に数値入力したらsheet2のフォントサイズを12に変更したいのです。回答のtarget部分をsheet2select range指定 font指定にしてみましたがフォントサイズは変化しませんでした。すみません 重ねて教えて頂けたら幸せます。

補足日時:2004/10/31 13:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A