[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Private Sub』(どうしようもないやつ)
どうしてもわかりません Private Subとついたマクロの実行の仕方がわかりません。 普通のマクロだったらマクロボタンに登録してクリックすれば 作動しますがPrivate Subにはボタンがありません。 どうやって実行するのですか。 教えて下さい。 例 Private Sub Worksheet_Activate() Dim ANS As Integer ANS = MsgBox("Bをクリアしてもいいですか?", _ vbYesNo + vbInformation, "クリア実行") If Sheets("B").Range("D6").Value <> "" Then Select Case ANS Case vbYes Sheets("営業確認").Range("D6:E1000").Select Selection.ClearContents Sheets("入力").Select MsgBox "クリアしました" Case vbNo MsgBox "キャンセル" End Select Else End If End Sub それと 現在以下のコードで対応しているのですが、 10列進んだ後元の位置に戻り2行下げてまた続行したいのですが こんな動きはできるでしょうか? Private Sub CommandButton1_Click() Dim r As Integer Dim c As Integer r = ActiveCell.Row c = ActiveCell.Column ActiveCell.Value = TextBox1.Value TextBox1.Value = Empty TextBox1.SetFocus Cells(r, c + 1).Select End Sub Excel2003,WindowsXP 下記の二つが前提条件ですが、 TextBox1 は必ず空でない その行にはこれ以外のデータが書かれていない こんな感じでどうでしょうか。 下記は上のどこにいれるのですか If Application.WorksheetFunction.CountA(ActiveCell.EntireRow) = 10 And c >= 10 Then Cells(r + 2, c - 9).Select Else Cells(r, c + 1).Select End If どうすれは作動するのでしょうか。
ご質問者は 中年さん と同一の方ですか? であれば、紛らわしいのでハンドル名は変えない方が良いかと思います。
また、過去の参照は全文を掲載しなくとも、リンクだけで十分かと思います。 [[20101213110402]]
ご質問の、 Private Sub Worksheet_Activate() はイベントによって実行されるマクロなので、 シートを切り替えてアクティブになったときに実行されるものです。
直接実行したい場合はタイトル部分にカーソルを置き、F5 で実行できると思います。 (但しこれで実行できるのは、引数がないプロシージャだけです。) (Mook)
有難うございました。今後ともご指導お願いします。 中年さんが同じ質問をしておられることは知りませんでした。 もっと隅々まで見て質問しなければいけませんね。 どうもありがとうございました。 (どうしようもないやつ)
ん?中年さんが同じ質問をしているというより、質問の後半は 中年さんがされたリンク先の 質問&回答の丸ごとコピーではないですか? 何のために、それが貼り付けられているかは不明ですが。
・・・と思ったら、質問文が追加されていたみたいですね。見落としていました。 >下記は上のどこにいれるのですか > If Application.WorksheetFunction.CountA(ActiveCell.EntireRow) = 10 And c >= 10 Then > Cells(r + 2, c - 9).Select > Else > Cells(r, c + 1).Select > End If >どうすれは作動するのでしょうか。
これは、こちらではなくもとの質問でされた方が良いと思います。
元のコードの下記の部分の代わりに、提示した5行を置きます。 Cells(r, c + 1).Select (Mook)
せっかく教えていただいたのにいまだに実行できません。 教えていただいた「ご質問の、 Private Sub Worksheet_Activate() はイベントによって実行されるマクロなので、 シートを切り替えてアクティブになったときに実行されるものです。」 この「シートを切り替えて」というのは、Sheet2で何か作業して Sheet1に戻ったときに動作するものなんですか。 いろいろ試したけれど何も変化がありません。 どうすればPrivate Sub Worksheet_Activate()は動くようになるのでしょうか (どうしようもないやつ)
ご迷惑をおかけしました。 やっと理解できました。 パソコンの調子が悪かったようです。 以前教えていただいたものを作動させたら動くようになりました。 どうもすみませんでした。 (どうしようもないやつ)
余計なお世話ですが、 >パソコンの調子が悪かったようです。 という原因はあまりない気がします。
推測ですが、マクロが無効になっていたか、EnableEvents が False になっていた せいではないでしょうか。 次回同様の現象が発生したら、このあたりを確認することをお勧めします。 (Mook)
Mook様有難うございます。 せっかくのご指導ですが 「EnableEvents が False になっていた」の意味がわかりません。 調べてみます。 調べました。 「他のアクションを起動にして、別の動作をするというものです」 ということですよね。 (どうしようもないやつ)
本来マクロというものがわかっていないのです。 ボタンをクリックするだけで好きなことが出来る。 その程度の知識です。 だからPrivate Subなにやらとか CommandButton1なんかがでてくるとさっぱりわかりません。 その程度のやつです。 ご指導有難うございます。
>ボタンをクリックするだけで好きなことが出来る。 >その程度の知識です。 >だからPrivate Subなにやらとか CommandButton1なんかがでてくるとさっぱりわかりません。
Privateというキーワードの意味とイベント(又は、イベントプロシジャー)の意味を ごちゃ混ぜにしていませんか?
確かにPrivate Sub Worksheet_Activate() のようにイベントプロシジャーは 規定値は、Privateキーワード付で表現されますが、 Privateキーワードが付いている ---> イベントプロシジャーではありません。
Privateキーワードの意味 イベントプロシジャーの意味
を検索して、きちんと理解するようにしてください。 VBAは、イベントドリブン方式を採用している言語ですから、この辺りを しっかり理解する必要はありますよ!!
それから、 >普通のマクロだったらマクロボタンに登録してクリックすれば >作動しますがPrivate Subにはボタンがありません。
このマクロボタンとは、コマンドバー「フォーム」にあるボタンの事だと思いますが、 Privateキーワードを使っていると、一覧には、表示されませんが、 直接入力すれば、ボタンにPrivate付きのマクロも登録することは出来るんですよ、実は・・・。
ichinose
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.